« 落雷の危険があるときはイヤホンをはずせ | トップページ | 琵琶湖の溶存酸素濃度を電気分解で上昇させる »

2007/07/17

数学的思考:自動掃除機の場合

ITproに掲載されたコラム「岩井慶一郎のIT的数学入門」(7/17)から。どこにでも転がっている「数学的視点」

数学的視点の例1:自動掃除機

 最近,自動的に床に掃除機をかけてくれる掃除機が売られています。日本で手に入りやすいのは,壁に当たると別の方向に向きを変えて進んでいくというものです。壁に当たるのは嫌という向きには,超音波で壁を検知して壁に当たりそうになると向きを変えるというものもあります(この掃除機は,残念ながら現在日本では販売中止になってしまいました)。

 さて,ここでこの掃除機を開発する立場になったと仮定しましょう。当然のことながら,掃除機には何らかの「進み方」のロジックが組み込まれていて,できるだけ効率よく床を掃除できるようにプログラムされているべきでしょう。では自分がSEやプログラマだったとして,どういうロジックを組むのがいいのでしょうか?

* 「反射」させる(入射角と反射角は等しくなるようにする)(図1)
* 当たったところから90度回す(図2)
* 当たったところから,適当に(ランダムに)回す(図3)

Cleaner

 こんなことはどうでもいいように思う方もいらっしゃるかもしれませんが,いかに短時間で効率よく掃除をするかは全自動掃除機の最も基本的な性能の1つで,競合他社が多数いる場合,このロジックが致命的になる可能性さえあります。そしてこのロジックはまさに「数学」そのものです。

なかなか興味深い問題だけど、数学的にエレガントに解くにはどうするのだろう? 力技なら、簡単なプログラムを書いてシミュレーションしてみるというのがありそうだけど、最近あんまりプログラムを書いていないので面倒だな。。

*7/19追記:エクセルのマクロでプログラムを書いて、シミュレーションをしてみました。下のコメント欄にエクセルファイルを置いてありますので、よろしければお試しください。

とりあえず、部屋は任意の長方形と仮定して考えてみよう。 「反射」する場合には、掃除機の描く軌跡は、2種類の平行線だけで表されることになりそうだ。うまくスタートさせると、実に無駄なく部屋を掃除してくれることもありそうだけど、下手をすると、同じ平行四辺形上をグルグル回り続け、部屋全体をカバーできなくなってしまうことがありそうだ。

直角に向きを変える場合には、掃除機の軌跡は互いに直交する平行線の組で表されることになるが、この場合にも下手をすると同じ長方形上をグルグルと回り続けることになる。。 という意味からは、ランダムな方向に向きを変えるという3番目の戦略だけが、グルグル回りに陥らない方法と言えそうだな。

でも、これが正解なのだろうか? 上記3つの方針の中から選ぶのであれば、ランダムというのが正解なのかもしれないが、自動掃除機のロジックとしては、もっとスマートなものがあるのかもしれない。例えば、壁に当たったら90度ではなく、80度で向きを変えたらどうなる? もう少し考えてみよう。。 この連載は期待が持てるかな?

数学といえば、フジTVの木曜深夜に放送されている、「たけしのコマネチ大学数学科」は、予想以上に長続きしている。当初は結構面白く、一緒に考えながら見ていたのだが、段々難易度が上がり、放送と同時進行では解けないような問題になってしまって、ちょっと悲しいものがある。こちらのブログで過去の問題が見られる(最近の分が更新されていないのが残念)。

|

« 落雷の危険があるときはイヤホンをはずせ | トップページ | 琵琶湖の溶存酸素濃度を電気分解で上昇させる »

コメント

エクセルのマクロで掃除機の動きをシミュレーションしてみました。多分問題なく動くと思うので、興味のある人はこのファイルをダウンロードして動かしてみてください。
http://tftf-sawaki.cocolog-nifty.com/blog/data/cleaner.xls">cleaner.xls

動かしてみてわかったのは、鏡面反射型や直角型は結構グルグル回りをするということと、ランダム型は確かにグルグル回りはしないけど、とんでもなく効率の悪い掃除をしてしまうこと。

毎回、一定の角度で反射するというのも計算できるようにしたけど、これも今一な感じ。

今回のシミュレーションは、掃除機に比べて部屋が大きすぎるのかもしれないが、自動型の場合、最適な移動方法と比べると相当に無駄な動きをしてしまうことになりそうだ。

結局は、自分で最も効率よく掃除できる場所と方向を何らかの方法で事前に求めて動くということにしないと駄目なんじゃなかろうか?

投稿: tf2 | 2007/07/19 23:30

「岩井慶一郎のIT的数学入門」に、ようやくこの問題の回答編が掲載されました。http://itpro.nikkeibp.co.jp/article/Watcher/20071015/284570/">自動掃除機を数学的に考えてみる

当初の問題にストレートにお答えいただいていないようで、ちょっと不満もありますが、『「エルゴード理論」と呼ばれる分野の「billiard」問題として,古くから研究されている』ということがわかっただけでも良しとしましょう。

投稿: tf2 | 2007/10/22 23:20

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 数学的思考:自動掃除機の場合:

« 落雷の危険があるときはイヤホンをはずせ | トップページ | 琵琶湖の溶存酸素濃度を電気分解で上昇させる »