中途採用でオプティマインドの最適化チームに入社してから「これまで」と「これから」
2021年4月より中途採用でエンジニアとして株式会社オプティマインドに入社しました伊豆原基人(イズハラノリヒト)と申します。本記事では簡単なプロフィールと、転職するまで〜現在について書きたいと思います。
数理的知識が役に立った前職
前職では特定派遣や業務委託といった形態で、開発や評価要員として勤務しておりました。その中には数理的要素が強い仕事も多く、様々な文献・論文を確認しながら資料作成や実装をしておりました。
数式処理や理論面で特に悩む必要がなかったのは、学生時代に学んだ数学のおかげだったと思います。世間でよく聞く「数学って何の役に立つの?」という疑問が生じることすら想像しにくいほどに、実社会は数理的処理に溢れておりました。
業務内容自体は学びも多く楽しかったのですが、お客様の業務をお手伝いするという業務形態上どうしても一つのプロジェクトに長く関わる機会が少なかったと思います。そのため、ビジネスとして数理的な題材を扱っているプロジェクトに長期的に携わりたい、という想いが強くなりました。
競プロきっかけで転職するまで
きっかけは、2018年の冬から大学時代の友人に教えてもらったAtCoder株式会社主催の競技プログラミングコンテストへ参加し始めたことです。AtCoder社ではその他に『AtCoderJobs』という就職・転職サービスを提供していました。ちょうど私も転職を考え始めていたこともあり、早速そのサービスに登録しました。
会社リストを眺めてみると、私の地元である名古屋で「組合せ最適化」を題材にビジネスをしている会社を発見。それが当社オプティマインドでした。物流の最適化という現代社会において重要な課題にビジネスとして取り組んでいることに関心を持ち、また理論面でも面白そうだと思い、すぐにカジュアル面談を申し込みました。面談では事業内容の説明はもちろん、社員の方々の人当たりの良さも感じたため、そのまま選考に応募し、ご縁を頂き入社しました。
最適化問題に携わる現在の仕事について
現在はオプティマインドの最適化チームの一員として、配送計画問題を解く最適化エンジンの機能開発や性能改善(配送時間の短縮、配送に必要な車両数の削減など)に努めています。この最適化エンジンで使用している手法は「メタヒューリスティクス」と呼ばれるものになります。実は私自身は、これまでこの分野について学んだ経験はありませんでした。今回は数理学科卒としての視点から、業務を通して感じたことを書きたいと思います。
メタヒューリスティクスとは実験的手法であり、厳密性を前提とする数学とは一見相性が悪いように見えますが、問題解決のための「発想の仕方」は結局似たような点が多いです。実際に動かしてみて計算過程を観察し、改善につながるウィークポイントを見つけ出した上で、既存のコードを修正したり新しい機能を開発したりします。また2つの手法の比較、例えば片方が探索できる範囲がもう片方を完全に含むか?を考える時は、それぞれの手法についてしっかりと前提とロジックを組み立て厳密に考えたりします。
とはいえ、延々と計算すれば最適解にたどり着くアルゴリズムを作り出したとしても、現実の時間は有限です。そのため効率についても考えなければいけません。この辺は私にとっては新しい考え方でしたので、なかなか勘が働かないところでした。
最適化チームメンバーには組合せ最適化を専門に研究されている方が複数いますので、毎日行う定例会や雑談などで質問・相談をしながら、日々組合せ最適化に関する感覚を鍛えています。またチーム内では論文勉強会を週一程度で開催しており、最適化の論文の読み方や着目の仕方などを学んでいます。私は位相的データ解析といった数学色の強い手法を紹介していますし、他にも計算理論の論文について解説してくれる方がいたりと多様性に富んでます。
これから
初心を忘れず最適化の知見や技術、その理論的な側面を含めて日々学びプロダクトに活かしていきたいと考えています。なんといっても題材である「配送計画問題(Vehicle Routing Problem、通称VRP)」はNP困難という"難しい"問題に分類されており、お客様にご満足頂ける答えを出すために取り組むべき課題は山程あります。
最適化チームで力を合わせてこの社会課題の解決に取り組んでいきたいと思います。もっと人数が増えるといいな。