第5回 Asprova プログラミングコンテスト
参加対象: All Rated対象: - ペナルティ: なし
システムテストが完了し、順位が確定しました。入賞者にはメールで賞金の授与に関してのご案内をしています。 asprova.com ドメインからお送りしています。受け取られていない方は、スパムフォルダなどに入っていないか、ご確認ください。
Asprova プログラミングコンテストとは
- アスプローバ株式会社が開催するマラソン型のプログラミングコンテストです。
- アスプローバ株式会社は、生産スケジューラ(工場の詳細スケジュールを計算するソフトウェア)を開発・販売している日本の会社で、製品開発は日本で行っています。日本ではトップシェア、中国・韓国・東南アジア・欧米など全世界で販売・技術サポート活動を展開し、世界ナンバーワンの生産スケジューラを目指して研究開発を行っています。
問題
- あなたは、大型機械の組立加工をする工場のスケジューリング担当者です。この工場で生産できる品目はI種類あります。各品目は組立加工を1回して製造できます。組立加工は、組立機のほかに、様々な役割を担当する作業員が必要になることがあります。また製造の前に、直前に製造した品目との組合せに応じた段取り時間が発生します。今、R個のオーダ(注文)を受け付けました。オーダrは品目i、数量q、最早開始時刻e、納期d、粗利金額pr、納期遅れ許容時間aが指定されます。オーダごとに粗利金額prを受け取れますが、納期から遅れてしまうと納期遅れペナルティ金額pe1が発生し、また、段取り時間が発生するたびに段取り時間ペナルティ金額pe2が発生します。この制約のもとに、利益Pが最大になるスケジュールを作成してください。
ルール
- 参加資格:所属・年齢・居住地を問いません。(アスプローバ株式会社と同業関係者はご遠慮ください)
- 参加登録:参加希望の方はこのページの参加登録ボタンから参加登録を行ってください。
- 参加登録期間:2019年12月3日~2020年1月6日
- コンテスト開催期間:2019年12月30日 AM 10:00 ~ 2020年1月6日 AM 10:00
- 提出間隔:プログラム提出後10分間は再提出できません。
- 順位:システムテストの結果で決定します。システムテストで用いるデータは、コンテスト期間中のジャッジ用データとは異なるデータです。
- システムテスト実行日:2020年1月6日。遅くとも1月9日までには終了する見込み。
- システムテスト対象のコード:以下を対象とします。
- CEを除く最新の提出
- 最高得点の提出(最新の提出と同じ場合は次点)
問題に対象を明記していなかったこと、また、開催期間中にいただいた質問の回答に誤りがありましたこと、誠に申し訳ありません。
賞金
- 成績上位者には、以下の賞金を授与いたします。
- 1位 160,000円
- 2位 80,000円
- 3位 40,000円
- 4位 20,000円
- 5~10位 10,000円
- 賞金は銀行振込でお渡しします。
懇親会
- コンテスト参加者が集まって食事をします。
- 日時:2020年1月10日(金) 17:00から
- 会場:アスプローバ株式会社(JR五反田駅 徒歩6分)
- 定員:25名
- 予定:
- 16:30 受付開始
- 17:00 主催者挨拶
- 17:10 入賞者によるプログラム解説
- 17:40 コンテスト講評 (仮)
- 17:50 表彰式
- 18:00 懇親会(食事あり)
- 20:00 閉会
- 申し込み:
- コンテストに参加しなかった方でも参加できます。食事のみを目的とした方は、ご遠慮ください。
- 定員をオーバする場合は以下の順番で参加の可否を決めさせていただきます。
- 1.入賞者10名
- 2.コンテスト参加者
- 3.その他、本プログラミングコンテストに興味のある方
- 参加ご希望の方はこちらから、お申し込みください。
特典
- 成績優秀者は正社員またはアルバイト(時給2,500円)採用を優遇します。
当コンテストの問題と、実社会の問題との関係
-
実際の工場のスケジューリングに、どう役に立つのか
工場での生産は、マシン・金型・作業員などの「資源」を組み合わせて使用します。 例えば、プラスチック製品を作るときには、射出成型機と金型と作業員が必要です。 同じ射出成形機に、異なる金型を取り付ければ、異なるプラスチック製品を射出できます。 金型に不備がある場合は、マシンや作業員が揃っていても射出成形はできません。 また、金型の交換には段取り時間が必要になります。 交換しているときはマシンを動かすことができないため、生産効率を上げようとすると段取り回数は可能な限り少なくしたいものです。 また、金型は製品ごとに必要で高価なため、希少であるという制約があります。 金型は修理で使えない期間が発生することもあります。作業員は扱えるマシンや勤務時間の制約があります。 急な欠勤が発生したときには新しい計画が必要になることもありますし、残業を極力少なくするための効率的な計画が求められたりします。 このような制約の下で、最適なスケジュールを作ることは工場にとって必須で重要な問題です。
リンク
更新履歴
- 2019年12月20日 :問題文修正
- 2019年12月24日 :提出間隔時間を10分に変更
- 2020年1月7日 :システムテストの対象を明記
Asprova Programming Contest
- This is a marathon programming contest hosted by 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 both in Japan and all over the world, including China, South Korea, South East Asia, Europe, and the United States. The company performs R&D intending to become the world's number one production scheduler.
Problem
- You are a person, that responsible for production scheduling for a factory that produces plastic parts. There are I plastic parts that can be produced at this factory. Each item can be manufactured with a single molding process. The molding process requires molds, workers, tools, etc. in addition to the molding machine. It also takes some time to change the mold before manufacturing. The factory received R orders. For each order r there are item type i, quantity q, earliest start time e, delivery due date d, gross profit pr, and allowable delay duration a are specified. At most, you can receive the total profit pr for every order, but if you are late from the due date, you will receive a penalty amount pe1. Also, every time that setup occurs (i.e., changing molds), there is pe2 penalty incurred. Create a schedule that maximizes profit P under these constraints.
Rules
- Participation requirement: Anyone can participate regardless of age, organization, or location. (Please refrain from joining if you are working in Asprova or from the same industry)
- Participation registration: Click on the Register button to register.
- Registration period: 3rd Dec 2019 - 6th Jan 2020
- Contest period: 30th Dec 2019, 10:00 AM (JST) - 6th Jan 2020, 10:00 AM (JST)
- Submit Interval: You cannot submit a solution for 10 min after submitting the last one.
- Available languages: C ++, C #, Python 3, Java8, Rust
- Final tests execution date: 6th Jan 2020. Final tests will finish by 9th Jan 2020 at the latest
- The question text is provided in both Japanese and English.
- Please also read AtCoder's Terms of Service, tutorial, rules, glossary, FAQ for other information.
Prizes
- The following money prizes will be awarded to the top performers:
- 1st: 160,000 yen
- 2nd: 80,000 yen
- 3rd: 40,000 yen
- 4th: 20,000 yen
- 5th~10th: 10,000 yen
- The award would be sent to the winners' bank account.
Awards Ceremony
- Date: 10th Jan 2020 (Friday), 5.00 PM
-
Place:
Asprova Corporation (6 minutes walk
from JR Gotanda station)
- Capacity: 25 people
- Remarks: The award ceremony will be held in Japanese.
- Schedule:
- 16:30 Reception start
- 17:00 Greeting from the organizer li>
- 17:10 Program explanation by winners li>
- 17:40 Contest review li>
- 17:50 Awards Ceremony li>
- 18:00 Networking (food provided) li>
- 20:00 Close li>
- Application:
- Even those who did not participate in the contest can join. However, please refrain from joining if you are only aiming for the food.
- If there are too many participants, priority will be given as follows:
- 1. 10 winners
- 2. Contest participants
- 3. Others interested in our programming contests
- If you wish to join, please click here.
Other privileges
- The top performers will be prioritized for consideration for a full time or part-time (2,500 yen per hour) job opportunity.
How does the contest question relate to real-world problems?
-
How is this useful for an actual factory scheduling?
Factory production involves a combination of different resources, such as mold machines, molds, workers, etc. Different types of plastic products can be produced by attaching different molds to the same molding machine. If there are some defects in the mold, production is not possible even if workers and machines are available. Each new item type requires the installation of a new mold into a molding machine, hence the setup time. Since the molding machine is unusable during the process of changing a mold, we want to minimize the number of setups to increase overall production efficiency. Molds themselves are rather expensive, and therefore there are only a few of them. They are also might not be repaired. There are also restrictions for the machines and working hours of operators. When a sudden absence occurs, it might be necessary to quickly and efficiently make a new plan that also minimizes overtime. Given these constraints, creating an optimal schedule is an essential task for factories.