最適化...並列化...離陸!



「歩行者がポイントAからポイントBに出てきました...」学校のカリキュラムからのこれらのタスクを覚えていますか? 彼らは私たちに論理的に考え、ある程度アルゴリズムを構成する能力、つまりプログラミングの基礎を教えてくれました。 しかし、ここで私たちはすべて大人になったので、大人の問題を解決する時が来ました。 ポイントAからポイントBまで、さまざまなチケット価格、ルート、ボーナスプログラムで毎日数十の飛行機が飛び出します...これらの多くのオプションは、提案された基準に基づいて最適なものを見つけ、他よりも速く計算するように計算する必要があります。

11月にIntelが開催した学生、大学院生、学童のコンテスト「Accelerate Your Code」の条件について簡単に知りました。 興味があり、Intelから賞のウルトラブックを入手したいすべての人のために-下のボタン。



それで、あなたがベルリンに住んでいて、サンフランシスコでのソフトウェアカンファレンスに行かなければならないと想像してください。 最も安い直行券を見つけるというタスクは、スポーツマンらしくないものとしては興味がありませんが、オプションは可能です。 会議の後に一定の時間的余裕があり、途中で興味深い場所に立ち寄るためにもう少し過ごす機会があるとします。 たとえば、ベルリン-サンフランシスコ-サンパウロ-ベルリンのルートは、直接のルートよりもわずか100ユーロしかかかりません。 これは余分な週に残る理由ではありませんか?

間接ルートには乗り継ぎが含まれ、その結果、複数の航空会社を使用する可能性があります。 1つのフライトの価格は、残りの航空会社によって異なります。 すべての旅行が同じ会社の飛行機で行われる場合、30%安くなります。 さらに、航空会社は「アライアンス」で団結し、この「提携」のみのフライトを使用する場合により良い条件を乗客に提供します-20%の節約。

現在、この種の問題を解決するにはスキルとメンタルワークが必要です。予約サービスでは、このような膨大な数のオプションを選別することはできません。 ただし、自動化することができます-消費者の喜びに。



このコンテストでは、2つの入力リストが提供されます。必要なすべてのフライトと、航空会社によって結ばれた提携(1つの会社が複数の提携のメンバーである場合があります)。 ソリューションのソースコード、入力データ、予想される結果の形式、およびタスクの説明(ここではフリーフォーム) は、Intel Software Academic Program Webサイトからダウンロードできます。 あなたの仕事は、提案されたコードを最適化し、並列化することです。 もちろん、ゼロから始めて自分ですべてを書くこともできますが、既存のソリューションを使用する方が安全なようです。 最適化と並列化は、少数/多数のフライト、少数/多数のアライアンス、短期間/長期間など、幅広い条件をカバーする必要があります。



タスク1.「一生懸命働く」

2つの都市間の最も安いフライトを見つけます。

例。 指定された間隔で出発および到着するベルリンとサンフランシスコ間の最も安いフライトを見つけます:2012-11-08 05:00 GMT以降に出発-2012-11-08 23:00 GMTまで到着、2012-年以降に出発11-15 02:00 GMT-2012-11-15 18:00 GMTまで到着。 最大移植時間は4時間です。



タスク2.「全力で休む」

休憩の最短および最長期間(出張前または出張後)、および目的の空港のリストを考慮して、各空港に最も安いフライトオプションを提供します。

例。 ルートを変更する方法ベルリン-サンフランシスコ次の興味深い場所(空港)で1週間の休暇(前後)を過ごす:サンパオロ、パナマ、ケイマン諸島。 各空港で最も安いオプションを提供します。



コンテストの登録フォーム、およびプログラムのコンパイル、ベンチマーク、アップロードに関するすべての技術情報は、コンテストWebサイトで確認できます。



コンテストの賞品

コンテストに参加するチームは、1人または2人で構成されます。 ロシアとウクライナからの3つの最高のチームが主な賞を受賞します-ウルトラブック(片手でのウルトラブック、つまり最大6)。 追加の賞品は主催者の裁量によります。



並列化と空想の成功をお祈りします!



All Articles