クリプキクローネ日記帳

ある種の音楽と数学とランニングはミニマルなところが似ていると思う。

RunKeeperの誤差最小化問題

今日会社から走って帰っている最中に考えたことなんですが、
答えが出なかったのでここで答えを募集します。

最近とうとう時代の流れに乗っかってスマホにしました。
そして、GPSで走った距離やペースを記録してくれるRunKeeperというアプリを使い始めました。
非常におもしろいので3月のハーフとフルに向けて練習頑張ろうと思いました。
ですが、このGPSという機能はある問題を抱えています。

というのは、位置を観測するのが数秒に1度なので、
完全な意味で常に位置を記録しているわけではない、という点です。
といっても充分細かくデータを取ってくれるので
運用上は全く問題ないんですが、理屈で考えると気になり始めます。

つまり、ある往復のコースにおいて、GPSが位置を記録したタイミングが悪いと、
一番遠い端には行かなかったことになるので、距離が実際より短くなるわけです。

こういうイメージです。
黒線が実際に走ったコースで、赤線がGPSが記録したコース、赤丸は位置を記録した場所です。
20140122_roundtrip2

じゃあ折り返さないコースを走ればいいじゃないかと思いますが、
円形に走っても以下のように誤差が生じます。
実際の方が少し長く走っています。
だいぶ極端ですが、何角形でも同じです。
20140122_circle

ではこの誤差をできる限り少なくするためにはどのようなコースがよいか。
誤差最小のコースの形を示し、そのことを証明せよ。
なおコースの幅は無視できるものとする。
これが今日の問題です。


ついでに言うと、コースの幅だけではなく以下も仮定します。
1. スタート地点とゴール地点は同一地点とする。(じゃないと直線の一本道が解で自明)
2. コースは起伏がなく完全に平面であるとする。
3. GPSの位置取得時間のズレ、測定位置のズレはないものとする(ひどい仮定)
4. 走る速度は完全に一定とする(ランナーにはあまりにもつらい仮定)
5. ランナーの体とスマートフォンは無視できるほど小さく、常にコースに接しているとする。

さらに、コース上のどの位置から測定を始めるかはランダムとします。
じゃないと往復コースでも一番遠いポイントで測定すれば解決なので。
つまり、正確には「誤差の期待値」が最小となるケースです。

さて、結局証明できていないわけですが、
個人的な予想では円かなと思っています。
正n角形もいい線行くと思うので、確信はありません。
でも円がキレイなので円であってほしい気持ちです。

とりあえず今日は家に着くまでに以下の具体例で往復コースと円の場合の比較を行ったので、
今回はそこまで紹介します。

今回、走るペースは1km5分、コースは6km、GPSは5分ごとにデータを取るとします。
RunKeeperは数秒ごとに取ってくれるのでこれは海賊版です。
つまり、コース上でちょうど6回GPSの取得タイミングがあります。
この場合の、往復コースの最悪ケースと最高ケース、円コースの場合を図にしました。
20140122_calculation_m

往復コースでは最悪の場合に0.5kmが4回、計2kmの誤差が生じています。
最高ケースだとちょうど端で位置を取っているので、誤差ゼロです。
その他のケースはおそらく誤差が線形で推移するので、
誤差の期待値は(2km+0km)/2 = 1kmです。

一方、円コースでは、コースが計6kmで、この円周は直径×πなので、
直径は6÷π = 6/π kmです。
したがって半径は3/π kmです。
正六角形は対角線を引くと正三角形の集まりになるので、
外側の辺は半径と同じ長さ(3/π)です。
正六角形の周囲は(3/π)×6 = 18/π kmです。
これは、18÷3.14 = 5.73kmです。
誤差は、6-5.73 = 0.27kmです。

当たり前ですが、圧倒的に円の方が誤差が少ないです。
数値をいろいろ変えても結果は同じだと思います。
コースが正六角形の場合は計算が複雑になるのでやってません。

そして、あらゆる形の中でその形が一番よい、という証明は
今は道筋すら全く思いついていません。
僕の知識でできるのだろうか。

誰かお願いします。
ランニングと数学はどっちも物事の根源的な部分だし、
ストイックなところがあって似ているので、
両方好きな人もいると思います。

ちなみに、今回はあくまでユークリッド幾何学ですが、
世の中にはアメリカ大陸横断ランニングとかやっている人もいるので、
その人たちのために非ユークリッド幾何学で考える必要もあるはずです。
ざっくり書くと、平面だけではなく曲面も考慮に入れようというような意味で、
地球は丸いので地球規模で走られるとそういうことになってしまいます。
これはやっかいです。

あと、最初は凸な図形に制限しないと問題成り立たないかと思ったけど、
家に着いてからはそんなこともないかなという気がしています。
上記の2つの例は(広義な)凸な図形ですが、
例えば以下の図のように、凹んでいる部分があるのが凸じゃない図形です。(そのまんま)
20140122_special_case

凹んでるところがあると、ちょうどその凹みでGPSの位置取得タイミングになると、
上記のように極端に短い距離になります。
もっと極端にすればGPSの距離はゼロにできます。

さらに、フラクタル図形みたいなコースまで考えると、
無限に細かく曲がり角があって頭が痛くなります。
遠くに行かなくても無限に細かい曲がり角で距離をいくらでも延ばせるわけです。
スタート地点から10cmくらいの範囲内で何度も曲がって42.195kmだって可能です。
実際にそのコースを走ってるランナーを思い浮かべるとだいぶ恐怖の情景が思い浮かびます。
スタート地点に立ったまま体を異様なリズムで震わせている感じになるはずです。
しばらくして突然「いま42.195km完走した」とか言われたらだいぶ引きます。
そのコースならたぶん世界記録も出ると思います。

そういうわけで、凸じゃない図形は特殊ケースがあるので
入れると問題が成り立たないかなと思っていました。
でもたぶん、ただ誤差が大きいだけなので、問題の結論には関係ないと思います。

以上です。

日本のGPS人工衛星「みちびき」が2019年に4基揃うそうなので、
それまでに解くことを目標に過ごします。
たぶん無理です。

今日は眠いので明日落ち着いてもう少し考えてみます。
考え方とか計算とか変だったら教えてください。
変かもしれない。
こういうの一度勘違いすると気付かないタチなので。
  1. 2014/01/23(木) 00:03:01|
  2. 数学・論理
  3. | トラックバック:0
  4. | コメント:7
<<続・RunKeeperの誤差最小化問題 | ホーム | I Used To Be A Sparrow - You Are An Empty Artist>>

コメント

一定の速さで走れて、走る距離も明らかなら、GPSをつけて走る必要ある?
  1. 2014/01/23(木) 22:45:14 |
  2. URL |
  3. #-
  4. [ 編集]

地球一周してくればいいんでないか。
  1. 2014/01/23(木) 22:53:26 |
  2. URL |
  3. Dai-NIHA #-
  4. [ 編集]

コースは6km、を読み飛ばしていたよ!
  1. 2014/01/23(木) 22:56:28 |
  2. URL |
  3. Dai-NIHA #-
  4. [ 編集]

周長1kmの円を6周するときが誤差最大!
というところにヒントがないか考えている。

何か、速度ベクトルの、線分に直交した成分の積分とかでできないだろうか。
  1. 2014/01/23(木) 23:15:32 |
  2. URL |
  3. Dai-NIHA #-
  4. [ 編集]

とりあえず1個前の最後の行は、明らかに間違えだったんだけど、
ところで、
この問題って、コースを「無限周回」してるの?
  1. 2014/01/23(木) 23:35:16 |
  2. URL |
  3. Dai-NIHA #-
  4. [ 編集]

一件目のコメント、名乗り忘れたけど、わたしです。
  1. 2014/01/24(金) 00:08:27 |
  2. URL |
  3. わかめ #-
  4. [ 編集]

>わかめ
するどい!!「はっ」としました。
一応この問題は距離は未知で、具体例として6kmを使ってるだけなんだけど、
走るペース一定なのは必要だからその時点でGPSの意味ないね。
ただ、この問題でどの図形がベストかが分かれば、それを拡張することで、
走るペースが一定範囲内でランダムの場合にも似たことを証明できると見込んでいます。
こどもの国で実験しよう!


>Dai-NIHA
絶対かみついてくると思った!(笑)
10年くらい前のドーナツ惑星重力均一化問題に通じるものがあるよね。

さて、「コースは平面」の仮定から、今回はユークリッド幾何学を想定しています。
非ユークリッド幾何学の特殊ケース(球面の場合)では、「地球一周」が解だね!
誤差ゼロだから、証明も完了だね!(唯一性はいえてないけれど)

「コースは6km」というのは具体例に過ぎないので、問題の定義には含まれません。
まあでも難しくなるので、まずは今回の具体例で考えたい。

それから、短いコースを複数周する、というのは完全に想定外だった。
コースを無限周回している最中の「ランダム地点からの一周分」って想定だった。

ただ、1kmのコースを6周しても今回の問題の定義には矛盾しないので、
誤差最大のケースも正解だね。さすがドーナツ惑星のプロだね。
ちなみにコースが1kmであれば、円でも三角形でもなんでも誤差6kmで同じです。

速度ベクトルの積分っていうのは、円周上で加速度ベクトルを積分する発想?
実は僕はもうこの問題を速度とか距離とかの動的な問題じゃなくて、
線と内分点の図形問題に落とし込んでしまっているので、あまりピンとこない。
動的な考え方に戻した方がいい場合もあるかもしれない。

続報に期待してる!!
  1. 2014/01/25(土) 00:34:49 |
  2. URL |
  3. わ #cZ.aCtDc
  4. [ 編集]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://myumbrella.blog42.fc2.com/tb.php/294-4b6e6f6a
この記事にトラックバックする(FC2ブログユーザー)