水田遥河/ソフトウェアエンジニア
東北大学大学院 情報科学研究科 システム情報科学専攻 博士課程
新卒でCCT入社
高速なアルゴリズムの研究に従事
-学生時代の研究について教えていただけますか
学部から博士まで一貫して「グラフアルゴリズムの計算量」に関する理論研究をしていました。簡単に言うと世の中の様々な問題に対して、その問題を解くための高速なアルゴリズムを作る、あるいは作れない場合はそれを数学的に証明する、といった研究です。
一般的に「高速なアルゴリズム」というと、実際にコンピュータ上で動かしたときにより短い時間で動作するアルゴリズムがイメージされると思います。ただ、「計算量」の分野では、「高速」の指標はコンピュータの性能に依存しないもので、アルゴリズムの「ループの回数」を指標としています。同じ問題を解くアルゴリズムでも、その組み方によってループの回数が大きく変動しますが、ビックデータを扱うようになった現代では例えばアルゴリズムの中に二重ループや三重ループがあるとそれだけで莫大な時間がかかってしまうので、できる限りループ回数の少ないアルゴリズムを作ろう!という研究になります。
私の研究では、世の中のいろいろな問題を「グラフ」と呼ばれる概念を用いて数学的にモデル化し、モデル化された問題に対して計算量の意味で「高速」なアルゴリズムの開発を行っていました。ロジックの小さな無駄さえも命取りになるので、処理の順序を入れ替えたり、細分化して取捨選択したりと、いろんな工夫をしながら無駄のないアルゴリズムの開発に専念していました。
プログラミング経験はほとんどなかった
-学生時代のプログラミング経験について教えていただけますか
「情報系出身でアルゴリズムの研究をしていた」という話をすると、がっつりプログラミングをやってきたと思われがちなのですが、実はプログラミングは授業で触れる程度でしかやったことがありませんでした。私の研究はあくまでロジックの「ループの回数」に着目するものでコンピュータでの実測値は必要ないため、研究の中では実装をする機会がありませんでした。研究室の同期とは、「情報系なのにプログラミングできないとやばいよね」と話しながら一緒にオンラインのプログラミング・チャレンジ問題を進めようとしていた時期もあったのですが、研究の合間に進めるのはなかなか難しく、一か月と持ちませんでした。(笑)
そのため、本格的なプログラミングをするようになったのは入社してからになります。それまでは、アルゴリズムを作ってもそれを動作させるということはしてこなかったので、実装をしていざ動いているものを見ることに楽しさを感じながら日々の業務に励んでいます。
開発の面白さに惹かれた
-CCTで今まで関わったプロジェクトについて教えていただけますか
CCTに入社してからは、ずっと一つのプロジェクトに携わっています。そのプロジェクトは建築業界のお客様からの案件で、建築設計に関する業務をシステムとして一元管理するといった内容のものです。
プロジェクト内でのチーム移動は何度かあったのですが、一番長く従事したのはシステムのフロントエンド開発で、システムのUIを実装する業務になります。私が担当したのは、建物やその周りの屋外機器を3Dで表示する画面の実装でした。3D表示にはCCTが開発している「Orizuru」を使っていて複雑な3Dの計算はOrizuruがやってくれるのですが、ある程度は座標計算に関する知識が必要で復習に苦戦しました。業務でプログラミングを行うのもこのUI実装が初めてだったので、その意味でも課題が次々と出てきてなかなか大変でした。
だた、試行錯誤を繰り返して苦労が多かった分、画面操作に合わせて建物の表示が切り替わったり、屋外機器の配置が換わったりと、プログラムが想定通りの挙動になった時にはとても感動しました。次第に「こういうロジックにすればもっと良くなるかもしれない」というアイディアが浮かんでくるようになり、それを試しているうちにどんどん実装の面白さのめりこみ、夢中になっていったのを覚えています。
博士を経験したからこそ得られたもの
-博士号を取得していますが、仕事において活かされていることを教えていただけますか
研究という観点では、正直なところ仕事に活きる部分は少ないと感じています。これは他の博士の方も同じだと思いますが、一般的に学士・修士の研究に比べて博士の研究は専門性が大幅に増すので、アカデミックを出てからそれを活かせる機会があるというのはむしろ珍しいと思います。
ただ、博士に進学してからの様々な経験は、現在の仕事に大きく生きていると感じています。私は博士課程の中で、研究費申請のための書類作成や、国内学会や国際学会での発表、外部の研究者との共同研究といったいろいろな経験をさせてもらいましたが、その中で文面や口頭での物事の伝え方、ディスカッションの仕方、課題に対する役割分担や取り組み方など、特に人とのコミュニケーションの取り方に関して多くを学ぶことができました。これらは間違いなく仕事をするうえでも必要なもので、今でも業務を行っている最中に「人にものを伝えるときはこういう伝え方をしなさい」と研究室時代の教授に言われたことを思い出す場面が多々あります。
今、業務をこなせているのも博士に進学してからの経験があってこそなので、学部時代に戻って修士までで就職するか、それとも博士に進学するかを選び直すことができたとしても、まちがいなく博士に進学する方を選択しますね。