examples/tas.mod
changeset 1 c445c931472f
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/examples/tas.mod	Mon Dec 06 13:09:21 2010 +0100
     1.3 @@ -0,0 +1,486 @@
     1.4 +/* TAS, Tail Assignment Problem */
     1.5 +
     1.6 +/* Written in GNU MathProg by Andrew Makhorin <mao@gnu.org> */
     1.7 +
     1.8 +/* The Tail Assignment Problem (TAS) is to construct rosters for a set
     1.9 +   of aircrafts (tails), which cover all flights for a given scheduling
    1.10 +   period.
    1.11 +
    1.12 +   This model includes only flight connection constraints while other
    1.13 +   constraints (for example, maintenance constraints) are ignored. Such
    1.14 +   simplification allows using a single commodity network to model the
    1.15 +   problem, where commodity corresponds to the set of aircrafts.
    1.16 +
    1.17 +   Nodes of the network are activities. They include all flights plus
    1.18 +   two dummy nodes (activities): source node, s, corresponding to
    1.19 +   initial activity of each aircraft, and sink node t, corresponding to
    1.20 +   final activity of each aircraft. Arc v->v' exists in the network if
    1.21 +   and only if the same aircraft is able to operate activity v and then
    1.22 +   immediately activity v'. In partucular, arcs s->f and f->t exist for
    1.23 +   all flights f. Arcs f->f', where f and f' are some flights, exist
    1.24 +   only if the connection time (which is the difference between the
    1.25 +   departure time of f' and the arrival time of f) is not less than a
    1.26 +   given minimal connection time.
    1.27 +
    1.28 +   Reference:
    1.29 +   M. Groenkvist, "The Tail Assignment Problem," Dept. of Comp. Sci.
    1.30 +   and Eng., Chalmers University of Technology and Goeteborg University,
    1.31 +   Goeteborg, Sweden, August 2005. */
    1.32 +
    1.33 +########################################################################
    1.34 +
    1.35 +param nf, integer, > 0;
    1.36 +/* number of flights */
    1.37 +
    1.38 +set F := 1..nf;
    1.39 +/* set of flights (for a given period from timetable) */
    1.40 +
    1.41 +param hub{f in F}, in {1, 2};
    1.42 +/* hub[f] = 1: Sheremetyevo-1
    1.43 +   hub[f] = 2: Sheremetyevo-2 */
    1.44 +
    1.45 +param dest{f in F}, symbolic;
    1.46 +/* destination airport (IATA code) */
    1.47 +
    1.48 +param fno1{f in F}, integer;
    1.49 +/* first leg flight number */
    1.50 +
    1.51 +param dep1{f in F}, integer, >= 0;
    1.52 +/* departure time from Sheremetyevo airport, in minutes */
    1.53 +
    1.54 +check{f in F: f < nf}: dep1[f] <= dep1[f+1];
    1.55 +/* all flights must be ordered by ascending of the departure time */
    1.56 +
    1.57 +param arr1{f in F}, integer, >= 0;
    1.58 +/* arrival time to destination airport, in minutes */
    1.59 +
    1.60 +param fno2{f in F}, integer;
    1.61 +/* second leg flight number */
    1.62 +
    1.63 +param dep2{f in F}, integer, >= 0;
    1.64 +/* departure time from destination airport, in minutes */
    1.65 +
    1.66 +param arr2{f in F}, integer, >= 0;
    1.67 +/* arrival time to Sheremetyevo airport, in minutes */
    1.68 +
    1.69 +param mct1, integer, >= 0, default 80;
    1.70 +/* minimal connection time (within SVO1 or SVO2), in minutes */
    1.71 +
    1.72 +param mct2, integer, >= 0, default 150;
    1.73 +/* minimal connection time (between SVO1 and SVO2), in minutes */
    1.74 +
    1.75 +set E := setof{f in F, ff in F: arr2[f] + (if hub[f] = hub[ff] then
    1.76 +   mct1 else mct2) <= dep1[ff]} (f, ff);
    1.77 +/* connection network; arc f->ff is in E, iff the same aircraft can be
    1.78 +   assigned to flight f and then immediately to flight ff */
    1.79 +
    1.80 +var s{f in F}, >= 0;
    1.81 +/* s[f] is a flow from source node to node f */
    1.82 +
    1.83 +var x{(f,ff) in E}, >= 0;
    1.84 +/* x[f,ff] is a flow from node f to node ff */
    1.85 +
    1.86 +var t{f in F}, >= 0;
    1.87 +/* t[f] is a flow from node f to sink node */
    1.88 +
    1.89 +s.t. into{f in F}: s[f] + sum{(ff,f) in E} x[ff,f] = 1;
    1.90 +/* exactly one aircraft must come into each node f */
    1.91 +
    1.92 +s.t. from{f in F}: t[f] + sum{(f,ff) in E} x[f,ff] = 1;
    1.93 +/* exactly one aircraft must come from each node f */
    1.94 +
    1.95 +minimize obj: sum{f in F} s[f];
    1.96 +/* minimize the number aircrafts sufficient to cover all flights */
    1.97 +
    1.98 +solve;
    1.99 +
   1.100 +########################################################################
   1.101 +
   1.102 +param na := floor(sum{f in F} s[f] + .5);
   1.103 +/* minimal number of aircrafts found */
   1.104 +
   1.105 +printf "At least %d aircrafts needed\n", na;
   1.106 +
   1.107 +set A := 1..na;
   1.108 +/* set of aircrafts */
   1.109 +
   1.110 +printf "Building rosters...\n";
   1.111 +
   1.112 +param tail{f in F}, in A, :=
   1.113 +/* tail[f] is the number of an aircraft assigned to flight f */
   1.114 +
   1.115 +   if f = 1 then 1
   1.116 +   /* assign aircraft 1 to the earliest flight */
   1.117 +
   1.118 +   else if s[f] >= 0.9 then (max{ff in 1..f-1} tail[ff]) + 1
   1.119 +   /* if f is the first flight in a roster, assign to it a next
   1.120 +      aircraft */
   1.121 +
   1.122 +   else sum{(ff,f) in E} tail[ff] * (if x[ff,f] >= 0.9 then 1);
   1.123 +   /* otherwise, assign to flight f the same aircraft, which is
   1.124 +      assigned to a preceding flight in the roster */
   1.125 +
   1.126 +########################################################################
   1.127 +
   1.128 +param file, symbolic, default "tas.ps";
   1.129 +/* file to output the assignment chart in postscript format */
   1.130 +
   1.131 +param title, symbolic, default "(no title)";
   1.132 +/* chart title */
   1.133 +
   1.134 +param left, default 25;
   1.135 +/* left margin, in mm */
   1.136 +
   1.137 +param top, default 25;
   1.138 +/* top margin, in mm */
   1.139 +
   1.140 +param right, default 20;
   1.141 +/* right margin, in mm */
   1.142 +
   1.143 +param bottom, default 15;
   1.144 +/* bottom margin, in mm */
   1.145 +
   1.146 +param sx := 297 - left - right;
   1.147 +/* chart area horizontal size, in mm */
   1.148 +
   1.149 +param sy := 210 - top - bottom;
   1.150 +/* chart area vertical size, in mm */
   1.151 +
   1.152 +param gap, default sy / (na - 1);
   1.153 +/* gap between rosters, in mm */
   1.154 +
   1.155 +printf "Writing assignment chart to %s...\n", file;
   1.156 +
   1.157 +printf "%%!PS-Adobe-3.0\n" > file;
   1.158 +printf "%%%%Title: Tail Assignment Chart\n" >> file;
   1.159 +printf "%%%%Creator: GLPK MathProg\n" >> file;
   1.160 +printf "%%%%BoundingBox: 0 0 595 842\n" >> file;
   1.161 +printf "%%%%EndComments\n" >> file;
   1.162 +printf "<</PageSize [595 842]>> setpagedevice\n" >> file;
   1.163 +printf "72 25.4 div dup scale\n" >> file;
   1.164 +printf "210 %.3f sub %.3f translate\n", bottom, left >> file;
   1.165 +printf "90 rotate\n" >> file;
   1.166 +
   1.167 +printf "/HelveticaBold findfont 5 scalefont setfont\n" >> file;
   1.168 +printf "%.3f %.3f moveto (%s) dup show\n", 0, sy + 5, title >> file;
   1.169 +
   1.170 +param period := floor((max{f in F} arr2[f]) / 60. + .5);
   1.171 +/* period duration, in hours */
   1.172 +
   1.173 +/* vertical bars */
   1.174 +printf ".8 .8 .8 setrgbcolor\n" >> file;
   1.175 +for {tt in 0..period}
   1.176 +{  printf "%s setlinewidth\n",
   1.177 +      if tt mod 24 = 0 then ".5" else "0" >> file;
   1.178 +   printf "newpath %.3f %.3f moveto %.3f %.3f lineto stroke\n",
   1.179 +      tt * (sx / period), 0, tt * (sx / period),
   1.180 +      sy + (if tt mod 24 = 0 then 2) >> file;
   1.181 +}
   1.182 +
   1.183 +/* rosters */
   1.184 +for {a in A}
   1.185 +{  printf "0 0 0 setrgbcolor\n" >> file;
   1.186 +   printf "0 setlinewidth\n" >> file;
   1.187 +   printf "newpath %.3f %.3f moveto %.3f %.3f lineto stroke\n",
   1.188 +      0, sy - gap * (a - 1), sx, sy - gap * (a - 1) >> file;
   1.189 +   printf "/Dingbats findfont 4 scalefont setfont\n" >> file;
   1.190 +   printf "%.3f %.3f moveto <28> dup show\n",
   1.191 +      -4, sy - gap * (a - 1) - 1.4, a >> file;
   1.192 +   printf "/Helvetica findfont 3 scalefont setfont\n" >> file;
   1.193 +   printf "%.3f %.3f moveto (%2d) dup show\n",
   1.194 +      -9, sy - gap * (a - 1) - 1.2, a >> file;
   1.195 +   for {f in F: tail[f] == a}
   1.196 +   {  printf "0 0 %s setrgbcolor\n",
   1.197 +         if hub[f] = 1 then "0" else ".8" >> file;
   1.198 +      printf "1 setlinewidth\n" >> file;
   1.199 +      printf "newpath %.3f %.3f moveto %.3f %.3f lineto stroke\n",
   1.200 +         dep1[f] / 60 * (sx / period), sy - gap * (a - 1),
   1.201 +         arr2[f] / 60 * (sx / period), sy - gap * (a - 1) >> file;
   1.202 +      printf "/Helvetica findfont 1.8 scalefont setfont\n" >> file;
   1.203 +      printf "%.3f %.3f moveto (%02d:%02d %s) dup show\n",
   1.204 +         dep1[f] / 60 * (sx / period), sy - gap * (a - 1) + .8,
   1.205 +         (dep1[f] mod 1440) div 60, (dep1[f] mod 1440) mod 60,
   1.206 +         dest[f] >> file;
   1.207 +      printf "%.3f %.3f moveto (%d %02d:%02d) dup show\n",
   1.208 +         dep1[f] / 60 * (sx / period), sy - gap * (a - 1) - 2.1,
   1.209 +         fno1[f],
   1.210 +         (arr2[f] mod 1440) div 60, (arr2[f] mod 1440) mod 60 >> file;
   1.211 +   }
   1.212 +}
   1.213 +
   1.214 +printf "showpage\n" >> file;
   1.215 +printf "%%%%EOF\n" >> file;
   1.216 +
   1.217 +########################################################################
   1.218 +
   1.219 +data;
   1.220 +
   1.221 +param title := "Tu-154 [from 2008-08-18 to 2008-08-24]";
   1.222 +
   1.223 +param nf := 261;
   1.224 +
   1.225 +param : hub dest fno1 dep1  arr1  fno2 dep2  arr2 :=
   1.226 +      1  1  IKT  743   195   520  744   610   970
   1.227 +      2  1  OMS  815   205   405  816   485   700
   1.228 +      3  1  CEK  897   205   360  898   430   595
   1.229 +      4  1  KRR  763   260   400  764   480   610
   1.230 +      5  2  SIP  133   280   420  134   500   620
   1.231 +      6  2  BUD  131   290   450  132   520   675
   1.232 +      7  1  AAQ  701   305   440  702   510   640
   1.233 +      8  1  MRV  785   310   440  786   520   650
   1.234 +      9  2  WAW  101   355   475  102   540   660
   1.235 +     10  2  GYD  147   370   550  148   675   860
   1.236 +     11  1  AER  869   385   530  870   655   795
   1.237 +     12  1  KRR  765   430   560  766   630   760
   1.238 +     13  1  AAQ  703   520   660  704   740   850
   1.239 +     14  1  LED  845   530   620  846   690   775
   1.240 +     15  1  KRR  767   540   675  768   765   895
   1.241 +     16  2  KBP  183   665   760  184   850   940
   1.242 +     17  1  MRV  787   755   905  788   985  1135
   1.243 +     18  1  KRR  771   810   940  772  1030  1165
   1.244 +     19  1  LED  849   825   900  850   960  1095
   1.245 +     20  2  IST  209   880  1050  210  1120  1280
   1.246 +     21  1  AER  873   885  1030  874  1760  1900
   1.247 +     22  1  ASF  711   995  1145  712  1640  1795
   1.248 +     23  2  ULN  563   995  1335  564  1415  1815
   1.249 +     24  2  OTP  151  1020  1175  152  1800  1940
   1.250 +     25  2  BEY  509  1025  1265  510  1350  1580
   1.251 +     26  2  OSL  211  1060  1220  212  1860  2015
   1.252 +     27  1  IKT  739  1085  1420  740  1510  1870
   1.253 +     28  1  KRR  773  1095  1240  774  1620  1765
   1.254 +     29  1  SGC  877  1120  1315  878  1395  1625
   1.255 +     30  1  LED  857  1150  1230  858  1610  1690
   1.256 +     31  1  CEK  899  1230  1385  900  1455  1620
   1.257 +     32  1  PEE  821  1235  1390  822  1450  1600
   1.258 +     33  2  TBS  197  1240  1405  198  1560  1715
   1.259 +     34  1  UFA  891  1275  1405  892  1475  1610
   1.260 +     35  1  KJA  781  1300  1570  782  1680  1990
   1.261 +     36  1  IKT  743  1635  1960  744  2050  2410
   1.262 +     37  1  OMS  815  1645  1845  816  1925  2140
   1.263 +     38  1  CEK  897  1645  1800  898  1870  2035
   1.264 +     39  1  KRR  763  1700  1840  764  1920  2050
   1.265 +     40  2  SIP  133  1720  1860  134  1940  2060
   1.266 +     41  2  BUD  131  1730  1890  132  1960  2115
   1.267 +     42  1  AAQ  701  1745  1880  702  1950  2080
   1.268 +     43  1  MRV  785  1750  1880  786  1960  2090
   1.269 +     44  2  WAW  101  1795  1915  102  1980  2100
   1.270 +     45  2  GYD  147  1810  1990  148  2115  2300
   1.271 +     46  1  AER  869  1825  1970  870  2095  2235
   1.272 +     47  2  EVN  193  1850  2030  194  2105  2275
   1.273 +     48  1  KRR  765  1870  2000  766  2070  2200
   1.274 +     49  1  AAQ  703  1960  2100  704  2180  2290
   1.275 +     50  1  LED  845  1970  2060  846  2130  2215
   1.276 +     51  1  KRR  767  1980  2115  768  2205  2335
   1.277 +     52  2  KBP  183  2105  2200  184  2290  2380
   1.278 +     53  1  MRV  787  2195  2345  788  2425  2575
   1.279 +     54  1  KRR  771  2250  2380  772  2470  2605
   1.280 +     55  1  LED  849  2265  2340  850  2400  2535
   1.281 +     56  2  IST  209  2320  2490  210  2560  2720
   1.282 +     57  1  AER  873  2325  2470  874  3200  3340
   1.283 +     58  2  ULN  563  2435  2775  564  2855  3255
   1.284 +     59  1  ASF  711  2435  2585  712  3080  3235
   1.285 +     60  2  DAM  517  2465  2705  518  2790  3020
   1.286 +     61  2  OSL  211  2500  2660  212  3300  3455
   1.287 +     62  2  KBP  185  2510  2610  186  3160  3250
   1.288 +     63  1  IKT  739  2525  2860  740  2950  3310
   1.289 +     64  1  KRR  773  2535  2680  774  3060  3205
   1.290 +     65  1  SGC  877  2560  2755  878  2835  3065
   1.291 +     66  1  LED  857  2590  2670  858  3050  3130
   1.292 +     67  1  CEK  899  2670  2825  900  2895  3060
   1.293 +     68  1  PEE  821  2675  2830  822  2890  3040
   1.294 +     69  2  TBS  197  2680  2845  198  3000  3155
   1.295 +     70  1  UFA  891  2715  2845  892  2915  3050
   1.296 +     71  1  KJA  781  2740  3010  782  3120  3430
   1.297 +     72  1  IKT  743  3075  3400  744  3490  3850
   1.298 +     73  1  CEK  897  3085  3240  898  3310  3475
   1.299 +     74  1  OMS  815  3085  3285  816  3365  3580
   1.300 +     75  1  KRR  763  3140  3280  764  3360  3490
   1.301 +     76  2  SIP  133  3160  3300  134  3380  3500
   1.302 +     77  2  BUD  131  3170  3330  132  3400  3555
   1.303 +     78  1  AAQ  701  3185  3320  702  3390  3520
   1.304 +     79  1  MRV  785  3190  3320  786  3400  3530
   1.305 +     80  2  WAW  101  3235  3355  102  3420  3540
   1.306 +     81  2  FRU  181  3245  3495  182  3590  3860
   1.307 +     82  2  GYD  147  3250  3430  148  3555  3740
   1.308 +     83  1  AER  869  3265  3410  870  3535  3675
   1.309 +     84  1  KRR  765  3310  3440  766  3510  3640
   1.310 +     85  1  AAQ  703  3400  3540  704  3620  3730
   1.311 +     86  1  LED  845  3410  3500  846  3570  3655
   1.312 +     87  1  KRR  767  3420  3555  768  3645  3775
   1.313 +     88  2  KBP  183  3545  3640  184  3730  3820
   1.314 +     89  1  MRV  787  3635  3785  788  3865  4015
   1.315 +     90  1  KRR  771  3690  3820  772  3910  4045
   1.316 +     91  1  LED  849  3705  3780  850  3840  3975
   1.317 +     92  2  IST  209  3760  3930  210  4000  4160
   1.318 +     93  1  AER  873  3765  3910  874  4640  4780
   1.319 +     94  2  ULN  563  3875  4215  564  4295  4695
   1.320 +     95  1  ASF  711  3875  4025  712  4520  4675
   1.321 +     96  2  OTP  151  3900  4055  152  4680  4820
   1.322 +     97  2  BEY  509  3905  4145  510  4230  4460
   1.323 +     98  2  OSL  211  3940  4100  212  4740  4895
   1.324 +     99  2  KBP  185  3950  4050  186  4600  4690
   1.325 +    100  1  IKT  739  3965  4300  740  4390  4750
   1.326 +    101  1  KRR  773  3975  4120  774  4500  4645
   1.327 +    102  1  SGC  877  4000  4195  878  4275  4505
   1.328 +    103  1  LED  857  4030  4110  858  4490  4570
   1.329 +    104  1  CEK  899  4110  4265  900  4335  4500
   1.330 +    105  1  PEE  821  4115  4270  822  4330  4480
   1.331 +    106  2  TBS  197  4120  4285  198  4440  4595
   1.332 +    107  1  UFA  891  4155  4285  892  4355  4490
   1.333 +    108  1  KJA  781  4180  4450  782  4560  4870
   1.334 +    109  1  IKT  743  4515  4840  744  4930  5290
   1.335 +    110  1  OMS  815  4525  4725  816  4805  5020
   1.336 +    111  1  CEK  897  4525  4680  898  4750  4915
   1.337 +    112  1  KRR  763  4580  4720  764  4800  4930
   1.338 +    113  2  SIP  133  4600  4740  134  4820  4940
   1.339 +    114  2  BUD  131  4610  4770  132  4840  4995
   1.340 +    115  1  AAQ  701  4625  4760  702  4830  4960
   1.341 +    116  1  MRV  785  4630  4760  786  4840  4970
   1.342 +    117  2  WAW  101  4675  4795  102  4860  4980
   1.343 +    118  2  GYD  147  4690  4870  148  4995  5180
   1.344 +    119  1  AER  869  4705  4850  870  4975  5115
   1.345 +    120  2  EVN  193  4730  4910  194  4985  5155
   1.346 +    121  1  KRR  765  4750  4880  766  4950  5080
   1.347 +    122  1  AAQ  703  4840  4980  704  5060  5170
   1.348 +    123  1  LED  845  4850  4940  846  5010  5095
   1.349 +    124  1  KRR  767  4860  4995  768  5085  5215
   1.350 +    125  2  KBP  183  4985  5080  184  5170  5260
   1.351 +    126  1  MRV  787  5075  5225  788  5305  5455
   1.352 +    127  1  KRR  771  5130  5260  772  5350  5485
   1.353 +    128  1  LED  849  5145  5220  850  5280  5415
   1.354 +    129  2  IST  209  5200  5370  210  5440  5600
   1.355 +    130  1  AER  873  5205  5350  874  6080  6220
   1.356 +    131  1  ASF  711  5315  5465  712  5960  6115
   1.357 +    132  2  ULN  563  5315  5655  564  5735  6135
   1.358 +    133  2  DAM  517  5345  5585  518  5670  5900
   1.359 +    134  2  OSL  211  5380  5540  212  6180  6335
   1.360 +    135  2  KBP  185  5390  5490  186  6040  6130
   1.361 +    136  1  IKT  739  5405  5740  740  5830  6190
   1.362 +    137  1  KRR  773  5415  5560  774  5940  6085
   1.363 +    138  1  SGC  877  5440  5635  878  5715  5945
   1.364 +    139  1  LED  857  5470  5550  858  5930  6010
   1.365 +    140  1  CEK  899  5550  5705  900  5775  5940
   1.366 +    141  1  PEE  821  5555  5710  822  5770  5920
   1.367 +    142  2  TBS  197  5560  5725  198  5880  6035
   1.368 +    143  1  UFA  891  5595  5725  892  5795  5930
   1.369 +    144  1  KJA  781  5620  5890  782  6000  6310
   1.370 +    145  1  IKT  743  5955  6280  744  6370  6730
   1.371 +    146  1  OMS  815  5965  6165  816  6245  6460
   1.372 +    147  1  CEK  897  5965  6120  898  6190  6355
   1.373 +    148  1  KRR  763  6020  6160  764  6240  6370
   1.374 +    149  2  SIP  133  6040  6180  134  6260  6380
   1.375 +    150  2  BUD  131  6050  6210  132  6280  6435
   1.376 +    151  1  AAQ  701  6065  6200  702  6270  6400
   1.377 +    152  1  MRV  785  6070  6200  786  6280  6410
   1.378 +    153  2  WAW  101  6115  6235  102  6300  6420
   1.379 +    154  2  FRU  181  6125  6375  182  6470  6740
   1.380 +    155  2  GYD  147  6130  6310  148  6435  6620
   1.381 +    156  1  AER  869  6145  6290  870  6415  6555
   1.382 +    157  2  EVN  193  6170  6350  194  6425  6595
   1.383 +    158  1  KRR  765  6190  6320  766  6390  6520
   1.384 +    159  1  AAQ  703  6280  6420  704  6500  6610
   1.385 +    160  1  LED  845  6290  6380  846  6450  6535
   1.386 +    161  1  KRR  767  6300  6435  768  6525  6655
   1.387 +    162  2  KBP  183  6425  6520  184  6610  6700
   1.388 +    163  2  AYT  223  6500  6690  224  6750  6940
   1.389 +    164  1  AER  867  6510  6660  868  6730  6880
   1.390 +    165  1  MRV  787  6515  6665  788  6745  6895
   1.391 +    166  1  KRR  771  6570  6700  772  6790  6925
   1.392 +    167  1  LED  849  6585  6660  850  6720  6855
   1.393 +    168  2  IST  209  6640  6810  210  6880  7040
   1.394 +    169  1  AER  873  6645  6790  874  7520  7660
   1.395 +    170  1  ASF  711  6755  6905  712  7400  7555
   1.396 +    171  2  ULN  563  6755  7095  564  7175  7575
   1.397 +    172  2  OTP  151  6780  6935  152  7560  7700
   1.398 +    173  2  BEY  509  6785  7025  510  7110  7340
   1.399 +    174  2  OSL  211  6820  6980  212  7620  7775
   1.400 +    175  2  KBP  185  6830  6930  186  7480  7570
   1.401 +    176  1  IKT  739  6845  7180  740  7270  7630
   1.402 +    177  1  KRR  773  6855  7000  774  7380  7525
   1.403 +    178  1  SGC  877  6880  7075  878  7155  7385
   1.404 +    179  1  LED  857  6910  6990  858  7370  7450
   1.405 +    180  1  CEK  899  6990  7145  900  7215  7380
   1.406 +    181  1  PEE  821  6995  7150  822  7210  7360
   1.407 +    182  2  TBS  197  7000  7165  198  7320  7475
   1.408 +    183  1  UFA  891  7035  7165  892  7235  7370
   1.409 +    184  1  KJA  781  7060  7330  782  7440  7750
   1.410 +    185  1  IKT  743  7395  7720  744  7810  8170
   1.411 +    186  1  CEK  897  7405  7560  898  7630  7795
   1.412 +    187  1  KRR  763  7460  7600  764  7680  7810
   1.413 +    188  2  SIP  133  7480  7620  134  7700  7820
   1.414 +    189  2  BUD  131  7490  7650  132  7720  7875
   1.415 +    190  1  AAQ  701  7505  7640  702  7710  7840
   1.416 +    191  1  MRV  785  7510  7640  786  7720  7850
   1.417 +    192  2  IST  207  7545  7720  208  7795  7985
   1.418 +    193  2  WAW  101  7555  7675  102  7740  7860
   1.419 +    194  2  GYD  147  7570  7750  148  7875  8060
   1.420 +    195  1  AER  869  7585  7730  870  7855  7995
   1.421 +    196  2  AYT  221  7610  7800  222  7895  8085
   1.422 +    197  2  EVN  193  7610  7790  194  7865  8035
   1.423 +    198  1  KRR  765  7630  7760  766  7830  7960
   1.424 +    199  1  AAQ  703  7720  7860  704  7940  8050
   1.425 +    200  1  LED  845  7730  7820  846  7890  7975
   1.426 +    201  1  KRR  767  7740  7875  768  7965  8095
   1.427 +    202  2  KBP  183  7865  7960  184  8050  8140
   1.428 +    203  2  AYT  223  7940  8130  224  8190  8380
   1.429 +    204  1  MRV  787  7955  8105  788  8185  8335
   1.430 +    205  1  KRR  771  8010  8140  772  8230  8365
   1.431 +    206  1  LED  849  8025  8100  850  8160  8295
   1.432 +    207  2  IST  209  8080  8250  210  8320  8480
   1.433 +    208  1  AER  873  8085  8230  874  8960  9100
   1.434 +    209  1  ASF  711  8195  8345  712  8840  8995
   1.435 +    210  2  ULN  563  8195  8535  564  8615  9015
   1.436 +    211  1  KJA  779  8230  8500  780  8575  8870
   1.437 +    212  2  OSL  211  8260  8420  212  9060  9215
   1.438 +    213  2  KBP  185  8270  8370  186  8920  9010
   1.439 +    214  1  IKT  739  8285  8620  740  8710  9070
   1.440 +    215  1  KRR  773  8295  8440  774  8820  8965
   1.441 +    216  1  SGC  877  8320  8515  878  8595  8825
   1.442 +    217  1  LED  857  8350  8430  858  8810  8890
   1.443 +    218  1  CEK  899  8430  8585  900  8655  8820
   1.444 +    219  1  PEE  821  8435  8590  822  8650  8800
   1.445 +    220  2  TBS  197  8440  8605  198  8760  8915
   1.446 +    221  1  UFA  891  8475  8605  892  8675  8810
   1.447 +    222  1  KJA  781  8500  8770  782  8880  9190
   1.448 +    223  1  IKT  743  8835  9160  744  9250  9610
   1.449 +    224  1  OMS  815  8845  9045  816  9125  9340
   1.450 +    225  1  CEK  897  8845  9000  898  9070  9235
   1.451 +    226  1  KRR  763  8900  9040  764  9120  9250
   1.452 +    227  2  SIP  133  8920  9060  134  9140  9260
   1.453 +    228  2  BUD  131  8930  9090  132  9160  9315
   1.454 +    229  1  AAQ  701  8945  9080  702  9150  9280
   1.455 +    230  1  MRV  785  8950  9080  786  9160  9290
   1.456 +    231  2  IST  207  8985  9160  208  9235  9425
   1.457 +    232  2  WAW  101  8995  9115  102  9180  9300
   1.458 +    233  2  FRU  181  9005  9255  182  9350  9620
   1.459 +    234  2  GYD  147  9010  9190  148  9315  9500
   1.460 +    235  1  AER  869  9025  9170  870  9295  9435
   1.461 +    236  2  EVN  193  9050  9230  194  9305  9475
   1.462 +    237  1  KRR  765  9070  9200  766  9270  9400
   1.463 +    238  1  AAQ  703  9160  9300  704  9380  9490
   1.464 +    239  1  LED  845  9170  9260  846  9330  9415
   1.465 +    240  1  KRR  767  9180  9315  768  9405  9535
   1.466 +    241  2  KBP  183  9305  9400  184  9490  9580
   1.467 +    242  2  AYT  223  9380  9570  224  9630  9820
   1.468 +    243  1  MRV  787  9395  9545  788  9625  9775
   1.469 +    244  1  KRR  771  9450  9580  772  9670  9805
   1.470 +    245  1  LED  849  9465  9540  850  9600  9735
   1.471 +    246  2  IST  209  9520  9690  210  9760  9920
   1.472 +    247  1  AER  873  9525  9670  874 10400 10540
   1.473 +    248  1  ASF  711  9635  9785  712 10280 10435
   1.474 +    249  2  ULN  563  9635  9975  564 10055 10455
   1.475 +    250  2  OTP  151  9660  9815  152 10440 10580
   1.476 +    251  2  DAM  517  9665  9905  518  9990 10220
   1.477 +    252  2  OSL  211  9700  9860  212 10500 10655
   1.478 +    253  2  KBP  185  9710  9810  186 10360 10450
   1.479 +    254  1  IKT  739  9725 10060  740 10150 10510
   1.480 +    255  1  KRR  773  9735  9880  774 10260 10405
   1.481 +    256  1  SGC  877  9760  9955  878 10035 10265
   1.482 +    257  1  LED  857  9790  9870  858 10250 10330
   1.483 +    258  1  CEK  899  9870 10025  900 10095 10260
   1.484 +    259  1  PEE  821  9875 10030  822 10090 10240
   1.485 +    260  1  UFA  891  9915 10045  892 10115 10250
   1.486 +    261  1  KJA  781  9940 10210  782 10320 10630
   1.487 +;
   1.488 +
   1.489 +end;