2011 Helsinki City Run

My fourth half-marathon. Not quite a personal best, and my excuse is that the course is a bit up-down hilly and has a lot of turns that slows you down.

Otherwise a solid run with no major problems. A lot warmer than last year, so I ran in shorts and T-shirt. I could put in some work on the uphills which made the HR go >170 and still recover to a reasonable HR 165 or so on the downhills or the flat bits.

My own garmin said 1:53:00, the chip time on the results website seems to be 1:52:57, and the time from the gun was 1:54:14.

The 5k times were: zero to 5k in 28:24, five to 10k in 26:30, ten to 15k in 26:09, fifteen to 20k in 26:25. In other words first 10k in 54:54 and the second 10k in 52:34.

Update: here's the GPS-trace.

TSP

If you have lots and lots of holes to drill on your cnc-machine you might want a TSP solver to optimize the order of the holes so as to minimize rapid movements between holes. I've written a small wrapper around metric_tsp_approx from the boost graph library and included it in opencamlib as a new class TSPSolver. Here's an example on problem "u2152" from TSPLIB95.

Here's a plot of the tour length compared to the known optimal tour length, as well as the run-time on my laptop (P9400 CPU). These problems range in size from 51 points to 2103 points. I might run the bigger problems on the desktop machine later. The algorithm guarantees a tour which is at worst twice the length of the optimal tour. In practice the solutions seem to scatter around 1.4 or 1.5 times the length of the optimal tour. The run times fall neatly on the predicted O(N²*log(N) curve.

A simple greedy heuristic (with better run-time?) which always selects the closest unvisited point also guarantees a tour at most twice the length of the optimal tour.

There's also a better heuristic, the Christofides algorithm, which guarantees a tour length at most 1.5 times the optimal tour length. In addition to the minimum-spanning-tree algorithm it requires a minimum cost perfect matching algorithm. I'm not sure if there is open-source code for this somewhere.

Update: here's a run on an i7-2600K cpu. The pre-factor is now halved to about 0.2 microseconds. The largest problem has 18512 cities and takes over three minutes (217 seconds) to solve.

Here's 'usa13509' from TSPLIB. Cities with population at least 500 in the continental US. Presumably from 1995 or so.

 

Scaling (?)

 

Sunday bike ride

First longer ride with the new road bike.

Ride details: 110km, 6h 29min (includes ca 52 min of breaks), avg speed 16.9 km/h, avg HR 123, 2124 kcal.

Bike details: Sabbath September frame with SRAM Rival groupset, 25mm wide 700c Continental tyres. I changed the saddle to a Brooks B17 and fitted a shorter 90mm Easton stem. The saddlebag is a Carradice SQR slim and the bar bag is an Ortlieb classic. Garmin Edge 800 GPS/computer. Shimano A-530 pedals.

12h Rogaining, Kirkkonummi

My first ever 12h rogaining event. Rogaining is like orienteering with points awarded for each control, with many more controls than an average team can hope to find, and the order in which you visit them is not important. We started at 20:00 in the evening and were using headlamps within about three hours. Most of the crowd seemed to head north, while we headed east to begin with.

The first few controls were close by roads, and we noticed soon after the first control (km 2-3) that short-cuts through the woods would result in very wet and cold feet. No problems with control nr2 (km 4-5), and a bit of luck at number three (km 6-7) where we walked straight onto the control while passing others who were reading the map carefully and circled around a nearby hill. On our map the control was marked on the wrong hill, maybe 200m to the east of its actual location. Everyone got a text message about this at some point.

Our fourth control (km 9) was again relatively straightforward, although we were already realising how hard it is to estimate distance on the map without roads, electric wires, or other hard/known reference points. Our fifth control was on top of a hill (km 12), now already in darkness with headlamps and flash-lights. The controls had reflectors on them which at night made them visible from far away if you pointed your light in the right direction. Number six (km 14) was also OK, but again it was difficult to estimate how far we were walking in the woods - walking on the road is so much quicker that it feels like it's taking a very long time to cover a short distance on the map in the woods. Our seventh control (around km 16-17) was only worth 2 points, and we made a bit of a mess of it. Took the road to come as close as possible, and then it was supposed to be mostly open rock until the control. Not so. Lots of woods, wet places, and difficult terrain. We weren't the only ones circling around here and others were clearly audible in the quiet of the night as well as visible by their headlamps. After the control we finally found our way back to the small road (km 18) again after abandoning thoughts of finding a 5-point control deeper into the woods and across some really wet terrain. Back at the starting-point we heard that others had searched for an hour or more without finding this 5-pointer, so a reasonable decision to abandon this one. Back on the road again and south. This is where the GPS dies in the picture below.

Although the garmin edge 800 is supposed to have a 15 hour battery life, mine gave up after just six, and this is the trace it shows on top of a cloudy google earth map.

Followed the road all the way to km 25 to take an easy 4-point control (our eight) close to a small road. Then again walking along roads and edges of fields to control nr 9 (km 29). More roads towards control ten (km 31), and at this point I think everyone started to have tired legs and feet. My legs were tired but not in horrible shape, but some developing blisters in my now soaking wet shoes were more problematic. Northward along a bigger road to control eleven (km 33), which was placed on a small islet in the middle of a pond. The controls had been put out weeks before when the ice and snow still carried the organisers on skis/snow-shoes. Now it was much warmer, damper, and softer. My team mate nearly took an involuntary swim here! Now the day was starting to brighten again and we had about three hours left before our 08:0o morning check-in back at the start. Followed a road towards our second to last control (km 36) at the edge of a field at a stream, then followed the same edge of the field to a path leading to our last control (km 38). Tired but in good spirits we walked back to the start (km 40) and finished with maybe 35-40 min to spare on the time-limit.

Here's a drawing, by hand, from gmap-pedometer which roughly shows our route(Link to this map: http://www.gmap-pedometer.com/?r=4450114):

Here are the two A3 size maps we were given.

Our route was: start - 22 - 30 - 26 - 58 - 47 - 38 - 29 - 54 - 48 - 40 - 49 - 37 - 20 - start.

and the southern part: