こんにちは、広報担当の小森です。
オプティマインドのエンジニアはどんな開発をしているの?どんな技術を使っているの?という疑問にお答えすべく、4回に分けてエンジニアの開発秘話を連載形式でご紹介しています。今回でとうとう最終回を迎えます!
第4回(最終回)を飾るのは、データサイエンティストの坂 匠(ばん たくみ)さんです!
自己紹介をお願いします。
名古屋大学大学院工学研究科の博士後期課程に在籍しており、社会基盤工学を専攻しています。一言に社会基盤工学といっても、地盤・河川・海洋。。。etcといったように様々な分野があります。その中でも私は、都市計画・交通計画の分野の研究をしていました。主な研究テーマは、携帯電話のGPS情報を用いた人流の予測です。オプティマインドにジョインするに当たり現在は休学をしていますが、10月から復学の予定です。
オプティマインドに入社しようと思った理由を教えてください。
大学のリーディングプログラムの入学試験会場で弊社社長の松下と出会い、意気投合しました。お互いどんな内容に取り組んでいるかは知っていましたが、出会った当初は彼の会社にジョインするとは思ってもいませんでした。ある時彼から、「ルートの最適化をやろうと思うんだけど」と相談を受け、自分の研究内容とはかけ離れた分野でしたが、交通計画の研究については活かせるのではないかと思い、ジョインすることを決めました。
現在はどんな業務を担当していますか?
弊社エンジンで計算が可能な形の道路ネットワークの形成を行っており、様々な交通規制や速度情報等を付加する整備も行っています。また、弊社サービスから取得されたGPSデータを用いて、停車位置・停車位置へのアプローチ(停車位置に対してどの道からどの向きに入り、どの道へどの向きに出ていったのか)を解析しています。
開発にはどんな技術を使っていますか?
道路ネットワークの形成・整備の部分ではSQLを駆使し、必要な情報をくっつけたり切り出したりして、効率良いネットワーク形成に取り組んでいます。また、通常の交通規制はもちろん、スクールゾーン等の交通規制や、朝夕の通勤ラッシュのような時間帯に依存して発生する渋滞時の速度を考慮できるように、道路ネットワーク上に情報を付加しています。こうすることで、「朝、この道は混んでいるので避けよう」や「夕方はスクールゾーンで通れないから、朝のうちに訪問しよう」といった選択が可能になります。
停車位置解析を行う際、GPSログをクラスタリングするのですが、k-means等の各点間の距離を見てクラスタリングする手法では太刀打ちできませんでした。なので、点の距離ではなく、密度をもとにクラスタリングする手法を採用し、各クラスタが球状であることを前提としないことで、停車中と走行中の分類を可能としました。
配送業務の一連の流れを見たときに、ルートの最適化に重要になってくるのは、どのポイントからリンク(道路)を外れたかという情報です。言い換えると、道路上のどこのポイントから敷地内or停車場所へ向かっていったかという情報です。弊社サービスのユーザー様から上がってくるGPSデータは、従来のナビ等から集まるGPSログとは異なり、1日を通してGPSを集めることができるため、「この駐車場にはこのポイントからこの向きに入ることができて、あのポイントからあの向きに出ることができる」といった情報が詰まっています。先の停車位置判定と組み合わせて、停車前後の車の動きから出入口のポイントや出入りする際にどこからどの向きに進んだかを判定することができます。
このようなデータを複数集めることで、新人ドライバーでも初めての担当エリアをすぐに走ることができるように、「最短ルート」というだけでなく、「停車位置の出入口までを考慮したルート」を提案することが可能となります!
停車位置まで解析しているんですね!開発で苦労した点について教えてください。
入社するまで、Shape形式のファイル(GISにてよく用いられるファイル形式)はGUI上でしか触ったことがなかったので、それをスクリプトの中で解釈し変換するという点にかなり苦労しました。一番最初にネットワークを変換したときは、まるで子供のらくがき帳のようなぐちゃぐちゃなネットワークができてしまったり…笑 何度も何度も緯度経度の組み合わせとにらめっこしながら、きれいなネットワークを作成できるまで頑張りました。笑 でもそれはベースの話なので、そこから更に、いろいろな解析結果や交通規制情報…etcの付加情報をつけていく必要があります。交通規制等は、時間帯別に入っているものもあり、その付加方法にも苦労をしました 。最初の頃は、すべての場合を考慮できておらず、お客様からよく「この道、朝は通れないよ!」といったご指摘をいただくこともしばしばありました。時間帯別の規制情報の必要性は開発当初から感じていたので、開発陣と試行錯誤の末、経路探索時に時間帯別の交通規制を考慮できるようになりました。
クラスタリングについてはk-means法のような初歩的なものの経験はありましたが、その他の手法については触ったことがありませんでした。点の密度でクラスタリングを行う手法の場合、隣接関係はどのくらいの距離までで、何点先までを隣接だとするのかについてのパラメータ調整に時間を取られました。また、単純にクラスタリングをしてしまうと、信号での停車もクラスタとして判定されてしまうため、こういった不要なクラスタの除去もおこなっています。何度もGIS上にGPSデータをプロットし、実データと比較しながらロジックを完成させました。
仕事のやりがいについて教えてください。
どんどん技術も進歩し、社外・社内においても新しい考えが生まれていく中で、その「新しい考え」を自分の手で実現させていく快感は他の何物にも変えられません!
今後、新たにチャレンジしたいことや目標はありますか?
かゆいところに手が届くような物流に特化した道路ネットワークの作成を目指していきたいですし、停車位置の解析をより一層精緻なものにしていきたいと思っています!
坂さん、有難うございました!!
オプティマインドでは現在一緒に働く仲間を募集中です!弊社での開発や、坂さんにご興味をお持ちの方は、ぜひお気軽にご連絡ください!あなたにお会いできるのを楽しみにしています!
最後までお読みいただき、ありがとうございました。