第12回 Asprova プログラミングコンテスト(AtCoder Heuristic Contest 053)

参加登録

参加対象: All Rated対象: All ペナルティ: なし

コンテスト情報

アスプローバ株式会社について

アスプローバ株式会社は、工場の生産スケジュールを立案するソフトウェアであるAsprovaを開発・販売しています。

工場の生産スケジューリング問題は、納期、在庫、コスト、設備、人など多くの要素と制約が複雑に絡み合った難しい問題です。私たちはこの生産スケジューリングの問題に特化し、より高い精度の生産スケジュールを、より容易に活用できる未来を目指し、探求を続けています。

アスプローバで取り組んでいる生産スケジューリング問題

生産スケジューリング問題は多くの場合、最適化問題として定式化しても実際に最適解を求めるのは困難です。この点は AHC の問題と同じなので、アプローチとしても AHC 同じようなヒューリスティックを活用することが有力な選択肢となりえます。

実際ここ数年、焼き鈍し法などの手法を取り入れることで、昔の Asprova では解決が難しかったケース対しても良い解が求まるようになってきました。この成果には複数名の AtCoder ユーザが貢献しており、現在もより広い範囲のスケジューリング問題を解けるようにアルゴリズムの開発を続けています。

生産スケジューリング問題の例

アスプローバでは顧客の課題に応じて様々な最適化アルゴリズムを開発していますが、ここではよくある課題である「段取りを減らしながら、納期に間にも合うようにしたい」というものをご紹介します。

段取りとは生産する製品の切り替えの際に発生する作業のことを言います。例えば原料の変更、機械の設定の変更、金型の変更などです。段取りが多くなると、製造効率が下がったり余計なコストが発生します。特に多品種少量生産では段取りを減らすことが重要な目的になります。

段取りを減らすためには同じ製品をまとめて生産することが有効ですが、まとめることを優先すると他の製品の生産が後回しになり、納期遅れの発生につながります。

段取り優先)同じ製品をまとめると段取りは減るが、後に回された黄色や紫の製品で納期遅れが発生する。


納期遅れ5件 段取り2回
※色のついた枠が製造作業を表し、色が製品の種類を、数字が納期を表す。
※右下に赤い丸のついているものは納期に間に合っていないもの。
※黒い小さい枠が段取り作業を表す。

納期遅れを減らすためには、納期が近いものを優先して生産することが考えられます。しかし、多くの場合段取りが増えて生産効率が悪化します。

納期優先)納期が近いものを優先すると納期遅れは減るが、段取りが増えて効率が落ちる。

納期遅れ3件 段取り9回

このような事情から、段取りと納期遅れの少なさをちょうどよいバランスで両立させる計画を立てることは難しく、人の手で長時間かけて計画を立てている場合もあります。

ちょうどいい計画例)納期遅れがなく、段取りも少なくなっている

納期遅れ0件 段取り5回

アスプローバではこういった問題に対して、人の手で行うよりはるかに効率的な計画を短時間で立てることができるアルゴリズムを開発しています。

実際には現場に応じて様々な要件があり、データ量も膨大になるため、それぞれの顧客に合わせたアルゴリズムを開発する必要があります。

アスプローバでは生産スケジューリング問題を最適化問題として解くだけでなく、以下の開発も行っています。

  1. Asprovaを使い勝手が良いソフトウェアにしていくための開発 (スケジューリングロジック、UI/UX、データ連携など。C++)
  2. Asprovaと連携するWebシステムの開発 (フロントエンド、バックエンド。javascript / typescript / html / css)

AHC 的な最適化の知見を実問題に活かしたい方はもちろん、これらの開発をやりたい方も歓迎です。AtCoderJobs に求人を掲載していますので、興味がある方はぜひご応募ください。

Asprova 開発者からのひとこと

  • 「最適化の仕事の中では、問題の解き方を考えるのに加えて、そもそもどんな問題を解くべきなのか、どう定式化すればよいのかも考えます。AHC の問題を解くのとはまた違った難しさ・面白さがあります」
  • 「競技プログラミングが好きな方、これからも問題に対して智慧を絞りたい方にとって、やりたいことができる会社です!」
  • 「SIMDを使用した定数倍高速化、stack pivotingによるスタックサイズ制限の回避など、OSやハードウェアの仕様を使ったhackがお好きな方はぜひどうぞ」
  • 「データ構造・計算量なども基礎として必要ですが、アルゴリズムコンテストのように完璧に多項式時間で解くことは難しいため、近似・ヒューリスティックを使います。ユーザーごとに仕様が大きく異なったり、途中で要件の変更や調整もあり得ます。汎用的に作らないといろいろ大変になります。どうすれば性能と汎用を両立できるかを考えています」

賞金・賞品

賞金・賞品の対象は日本国内在住で、参加登録時に受け取りを希望し、必要事項を入力された方(ただしアスプローバ株式会社の社員は除く)となります。順位は対象者内の順位です。

賞金(総合賞)

条件を満たす参加者のうち、上位10名にAmazonギフトカードを進呈します。

対象者内順位賞金
1位80,000円
2位50,000円
3位30,000円
4位20,000円
5-10位10,000円

賞金(学生賞)

条件を満たす学生の参加者で、総合賞の対象とならなかった方のうち上位20名にAmazonギフトカード5000円を進呈します。

賞品

上位の方(20名程度を予定)に賞品を進呈します。賞品はクッション(30cm×30cm)を予定しています。

表彰式・懇親会

コンテスト上位の方を対象に表彰式・懇親会を行う予定です。

  • 日時:2025年9月26日(金) 夕方から
  • 会場:artia 五反田
  • 会場住所:東京都品川区西五反田2-13-6 セラヴィ五反田ビル1F
  • 詳しい予定は決まり次第記載します。
  • 対象者:参加登録フォームで表彰式・懇親会に参加希望と回答された方のうち、上位15~20名程度を予定
  • 遠方の方には旅費を支給します。

過去のコンテスト

ルール

  • 問題は1問です。AtCoderで使用できるすべてのプログラミング言語を使用可能です。
  • 誤提出・再提出のペナルティはありませんが、解答を提出する際は前回の提出から5分以上の間隔を開ける必要があります。
  • コンテストは個人戦です。2人以上で結託し、解答する行為は禁止しております。
  • コンテスト終了前に、問題の考察や解答を公開する行為は禁止しております。ただし、提供されたツール類の動かし方に関する情報は自由に共有して構いません。
  • その他のルールは こちら を参照してください。

メニューについて

なお、上メニューバーの各ボタンの機能は、以下の通りです。

  • トップ : 現在閲覧中のページです。
  • 問題 : コンテストの問題の閲覧ができます。
  • 提出 : コンテストの問題に対する、解答ソースコードを提出することが出来ます。
  • 質問 : コンテスト全体、および各問題に対して、コンテスト中に質問し、その回答を閲覧することが出来ます。
  • 結果 : 今までに自分が提出した解答を閲覧することができます。また、コンテスト終了後には他の参加者の解答状況を閲覧することが出来ます。
  • 順位表 : 現在のコンテストの順位表が閲覧できます。

その他

利用規約ルール用語集よくある質問 をご一読下さいませ。

Contest Information

About Asprova Corporation

Asprova Corporation is a company in Japan that develops and sells production scheduling software to factories for planning detailed workflows. Software development and headquarters are in Japan.

Asprova Corporation conducts sales and provides technical support in Japan and all over the world, including China, South Korea, South East Asia, Europe, and the United States. The company is dedicated to build the best production scheduler in the world.

Software development is done in Japan. While we make our product more handy to the users, we also study and develop optimization algorithms to solve highly complicated scheduling problem.

We are looking for world class programmers to help develop Asprova with us here in Japan.

Links to recruitment. The following contents are written only in Japanese.

Links to past contests

Rules

  • There is one problem. You can use any programming language available on AtCoder.
  • There is no penalty for resubmission, but you must wait at least 5 minutes between submissions.
  • The is an individual competition. It is prohibited to publish your solution before the end of the contest. However, you are free to share information on how to run the provided tools.
  • For other rules, see here.