進化計算コンペティション2024を支えるさくらのクラウド

はじめに

OptHub株式会社の小嶋です。

OptHub株式会社は進化計算コンペティションの運営をしています。進化計算(Evolutionary Computation)とは生物の進化原理を模倣して最適な解を導くアルゴリズムの総称であり、進化計算コンペティションでは最適化問題に対するできるだけ良い解を見つけることを競います。

本コンペティションの開催にあたり、さくらインターネット様から計算リソースをご提供いただきました。本稿では、本コンペティションにおけるさくらのクラウドの活用方法についてご紹介いたします。

OptHub株式会社とは

OptHub株式会社は、進化計算を中心とした最適化AI技術の社会実装を目的に、東京科学大学発のスタートアップとして設立されました。最適化とは「与えられた制約条件のもとで最も優れた解を見つけ出す」問題であり、工業製品の設計、社会インフラの運用、機械学習モデルの訓練など、幅広い分野で重要な役割を果たしています。私たちは、企業が抱える計画・設計・スケジューリング・配置といった複雑な最適化課題に対し、AIによる自動化・高度化を通じて解決を図り、利益の最大化に貢献しています。

OptHub Solution

企業の計画・配置・スケジューリングなどの課題に対し、最適化AIで自動化・高度化を支援します。データ取得からモデリング・実装まで一貫対応し、現場で使える形で導入します。研究機関と連携し、業種・規模に応じた柔軟なソリューションを提供しています。

OptHub Competition

産業界の最適化課題を対象に、コンペ形式で多様な解法を募り課題解決を図ります。進化計算コンペティションを軸に、産学連携で現場活用可能な手法を発掘・実証します。若手育成や専門家ネットワーク形成の場としても機能し、社会実装を後押ししています。

進化計算コンペティションとは

進化計算コンペティションは進化計算学会とOptHub株式会社が主催する最適化のコンペティションです。

進化計算コンペティションでは、参加者は出題された最適化問題に対してできるだけ良い解を見つけることを競います。例年10月~12月頃に開催され、開催期間中にいくつかの問題を解き、12月の進化計算シンポジウムで表彰式を行います。

コンペでは毎年、実際の企業や研究所の現場で扱われているリアルな実問題を出題しています。

これまでは学会のボランティアで運営してきましたが、年々大きくなるコンペを支えるために、コンペシステムの開発・運用を法人化し(OptHub株式会社)、システムを刷新しました。

進化計算と計算コスト

本記事の冒頭でも簡単に触れましたが、進化計算とは生物の進化原理を模倣して最適な解を導くアルゴリズムの総称です。「選択」「交叉」「突然変異」などの操作を繰り返し、解候補を世代ごとに改善していきます。

探索は、初期集団の生成 → 評価値(適応度)の計算 → 優秀な個体の選択と交叉・突然変異 → 次世代への更新、というサイクルで進みます。これを数百〜数千世代繰り返し、より良い解を探索します。

中でも最も計算リソースを要するのが評価です。毎世代で多数の個体に対して評価関数を実行する必要があり、特に実問題では1回の評価に数秒〜数分かかるケースもあります。

進化計算コンペティション2024では、ナンプレの初期盤面が解であり、評価はサーバがその盤面を解くことで適応度を算出します。さらに、全提出解の適応度を基に探索の進捗をスコア化し、参加者を比較します。こうした評価処理が多数行われるため、全体として膨大な計算量が発生します。2024年大会では、全体で560,000回の評価が実行されました。

さくらのクラウドの利用

私たちはこの大きな計算負荷に対応するため、さくらのクラウドの高性能インフラを活用しました。安定した演算環境のおかげで、大量の評価処理を効率的にこなすことができ、コンテストの円滑な運営を力強く支えていただきました。具体的には、12コア・メモリ64GBの大規模インスタンスを3台、ご提供いただきました。システム内での活用箇所については、次章の図でご紹介いたします。

コンペティションシステム”OptHub Competition”の構成

OptHub Competitionの評価処理に使用しているインフラ構成を、以下にご紹介します。

具体的な処理のフローは次のとおりです。

  1. コンテスト参加者は、弊社が提供するライブラリ「OptHub Client」を用いて、REST API経由で解を送信します。送信された解は整形され、DynamoDBに格納されます。
  2. 解の格納をトリガーにして、評価処理を行うEvaluatorが監視しているSQSにメッセージが送られます。EvaluatorはこのSQSからメッセージを取得し、評価を開始します。
  3. 評価が完了すると、適応度をはじめとする評価結果がDynamoDBに格納されます。
  4. 評価結果の格納をトリガーに、Scorerが監視しているSQSにメッセージが送られます。Scorerは過去のすべての評価結果を使用してコンテストのスコアを計算するサーバです。ScorerはこのSQSからメッセージを取得し、スコアの計算を行います。
  5. スコア計算が完了すると、その結果がDynamoDBに格納されます。

今後の展望

進化計算コンペティションでは例年、終了の前々日頃から解の提出数がスパイクする傾向があります。これは、参加者が最後の追い込みをかけるタイミングであるためです。2024年大会では、大規模インスタンス上でマルチプロセスによる並列処理を行っていましたが、最終日には評価の遅延が発生しました。

この課題を解消するため、今後はオートスケーリングの導入を検討しています。参加者が快適に利用できるコンテスト環境の整備に、今後も努めてまいります。

終わりに

進化計算コンペティション2024は、さくらインターネット様よりご提供いただいた大規模な計算リソースに支えられ、盛況のうちに終了いたしました。心より御礼申し上げます。

現在、進化計算コンペティション2025に向けた作問作業を進めております。「進化計算」という名前は付いていますが、進化計算学会の会員でなくても、どなたでも自由に参加可能です。使用する手法も問いません。進化計算に限らず、ベイズ最適化、数理最適化、ヒューリスティクスなど、あらゆる最適化技術で挑戦いただけます。これまでの参加者には、学生・企業研究者・個人開発者など、多彩な背景を持つ方々が集まりました。

最適化に少しでも関心がある方は、ぜひお気軽にご参加ください。楽しみながらスキルを磨き、社会課題の解決に貢献できるまたとない機会です。皆様の挑戦をお待ちしています。