情報処理部のトピックス
JOI一次予選対策を実施しました。
日本情報オリンピック(通称:JOI)一次予選・第1回目がいよいよ近づいてきました。
1年生にとっては初めての参加、2年生にとっては2度目の挑戦となります。特に多くの1年生にとっては、これまで鍛えてきた競技プログラミングの実力を試す、初めての公式大会となるでしょう。
そこで事前対策として、HOJを活用し、本番と同様の難易度・ルールで予想問題を作成し、模擬コンテストを実施しました。問題は 1回目 2回目 の両方から確認できます。
第2回の模擬コンテストでは、1年生20人(1年生全体の86.9%)が一次予選を突破できる能力を持っていることが確認できました。ただし、全問正解者は12人にとどまりました。全体的には、
・難しく考えすぎてしまう
・ケアレスミス
・時間制限やエラーに焦ってしまう
といった課題が目立ちました。
それでも、1年生の中には大きな潜在能力を感じています。残された時間でその力を最大限に引き出せるよう、引き続き対策を進めていきます。また、同時にパソコン甲子園の予選に向けた準備も並行して進めていきます。
引き続き、情報処理部を応援よろしくお願いいたします。
・模擬コンテストの様子
by Ei2 森田隆生
SuperCon2025 結果発表・閉会式
夏の電脳甲子園「 Supercomputing Contest 2025」 の本選が終了しました。
8月18日(月)~21日(木)の4日間にわたり、東京科学大学のスーパーコンピュータ「TSUBAME4.0」を用いた熱い戦いが繰り広げられました。入賞したのは以下の3チームです。
| 第1位 | sabotage | 筑波大学附属駒場高等学校 |
| 第2位 | Redpass | 筑波大学附属駒場高等学校 |
| 第3位 | LogConst | 富山県立富山中部高等学校 |
課題は10問が出題され、各問について上位5位までにそれぞれ5点,4点,3点,2点,1点のスコアが与えられます。4位以下は得点が団子状態であったり、有効解が求められていないチームが多数あったりということで、発表されませんでした。
入賞チームの戦略の概要は以下のようなものでした。
チームsabotage(筑波大学附属駒場)
初期解を貪欲法で作り、焼きなまし法で改善する方法を採用していましが、GPUを用いないCPUだけの実装でした。
チームRedpass(筑波大学附属駒場)
西→東の一方向スイープに探索を限定し、探索空間を枝刈りすることで、高速化を図っていました。
3位のチームLogConst(富山県立富山中部高等学校)
視覚化した観察から得られた「低風速格子は利得が小さい割に影響範囲が広がる」という考察から、風速しきい値を探索して不利な候補を早めに捨てる戦略を取っていました。
1位のチームはGPUを使っておらず、GPUスパコンのTUBAME4.0を利用した今回のコンテストに於いては、正直釈然としないものがあります。
本校の2チームは、大きな戦略は他チームと大差なかったようです」が、さらなる実力工場のためには、一般的な競技プログラミンのような考え方ではなく、問題の本質をしっかり捉え、柔軟な発想でプログラミングできる力をつけてもらいたいと思います。
閉会式後は、協賛企業が提供する景品のあみだくじによる抽選会が行われました。その後、本校の2チームは、実行委員会より提供された競技結果データを検討し、チームを超えて互いにプログラムの評価やさらなるスキルアップに向けての議論を行っていました。
| 閉会式 | ||
| 閉会式後、競技結果について議論しています | ||
1年生のプログラミング授業が終了しました
8月7日、1年生は最後の授業を終えました。そして、お盆休み明けの8月18日には、全範囲プロコンをHOJで開催しました。コンテストの成績は全体的に良く、皆さんの成長を改めて実感する機会となりました。
4月末頃に始まった授業では、約4ヶ月かけてプログラミングの基礎から応用アルゴリズムまでを1年生が学んできました。最初は基礎も分からない状態からのスタートでしたが、自然と皆さんが上達していく姿を見て、本当に感動しました。
もちろん、まだ大半の1年生が競技プログラミングにおいて圧倒的な強さを持っている訳ではありません。しかし、この4ヶ月間での成長は目覚ましく、1年生の皆さんが努力家であることは間違いありません。今後のさらなる成長がとても楽しみです。
今回、授業班として初めて活動しましたが、班をまとめることには大変苦労しました。また、授業スライドを夜遅くまで作成するなど、忙しい日々が続きました。それでも、その苦労が皆さんの成長に繋がったと思うと、これ以上に嬉しいことはありません。この4ヶ月間、本当にやりがいのある時間でした。
きっと、今の1年生も、来年には頼もしい先輩として活躍してくれるはずです。その姿を見るのが待ちきれません!
by Ei2森田隆生
・全範囲プロコンの様子
SuperCon2025 本選競技が終了しました
今日は、Supreconputing Contest 2025 本選4日目です。
14:00 をもって本選競技が終了し(マシントラブルで競技は1時間延長されました)、両チームともとりあえず課題プログラムの提出はできました。課題プログラムのレポート提出も終わり、あとは明日の結果発表を待つばかりです。
今回の本選課題は、「洋上風力発電所の設置」でした。
【問題概要】
洋上風力発電所の計画・設計にあたって、風車(風力タービン)のレイアウト最適化と設置台数の最適化を行う問題です。
洋上風力発電では、
・風車同士が近すぎるとそれらが相互に干渉し風向きの下流にある風車の発電量が低下してしまう
・洋上設置の初期投資を抑えるために、目標発電量を効率的に達成するための風車の数をできるだけ少なくする
こと考慮し、風車同士が互いに風を奪い合わない適切な間隔を保ちつつ、強風が得られる地点を狙って配置する必要があるそうです。
今回の課題は、日本近海を想定した洋上風速マップと調達可能な風車の上限数が与えられ、
・風車の上限台数を超えないようできるだけ少ない風車を用意する
・マップ上の風車の配置位置を最適化して発電量を最大化する
ことを同時に満たすモデルを構築するというものでした。
競技では、作成したプログラムで10問の課題を解き、総発電量の多い順に順位が付けられることになります。
| 課題プログラムのレポート作成中 | ||||
| (左)チーム tomato、(右)チームtrasure | 競技が終わって両チーム歓談中 | |||
チームtomatoはCUDAやOpenACCでのGPU処理やMPIを使ったCPU並列など、いくつかの並列処理のアプローチを試していました。また、チームtreasureは、並列化以前のプログラムの作成やCUDAのデバッグに苦戦していましたが、最後は納得いくプログラムができたようです。
また、度々スーパーコンピュータTUBAME4.0のマシントラブルに見舞われたり、急なレギュレーションの変更があったりと、これらの対応にかなり苦労を強いられたようでした。
それでも、両チームとも持てる力を出し切り最善は尽せたようでしたが、手応えはどうだったでしょうか?感想を聞いてみました。
チームtomato(寺田・橋本・広瀬)
・途中で問題に変更があったり,スパコンが使えなかったりなどの対処が大変でした。
・スーパーコンピューターでのプログラミングはこのコンテストに向けて初めて勉強し始めました。GPUを使ってのプログラミングは慣れていない部分も多いですが、勉強した成果は発揮できたと思います。
・スーパーコンピュータでのプログラミングは初めてで、とても新鮮であり多くの学びを得ることができました。それとともにチームでのプログラミングのメリット・デメリットを体感することができました。
チームtreasure(森田・池谷・間渕)
・問題の難易度も非常に高かったうえに、様々なアクシデントがあり大変でしが、最後まで諦めず努力し、無事コードを提出することができたので良かったです。
・CUDAプログラミングの練習が始まった時は使い方が全く分からず苦戦しましたが、練習をすることで使い方を覚えることができました。大会本番では難しい問題に戸惑いましたが、面白かったと思える良い体験になったと思います。
・スパコンに参加すること自体初めてで、どこからやればいいのか分からず、とても大変でした。
・予選のときはC++の使い方もわからず、正直不安でしたが、チームでコーディングを続けていくうちに、次第に理解できることが多くなり、自信に繋がりました。
・本選はとにかくシステムトラブルが多く、スパコンへの印象が変わってしまいました。それでもなんとか提出までもっていけたので良かったです。
結果は明日の表彰式・閉会式(Zoomでのオンライン)で発表されます。
【日時】2025年8月22日(金)14:00~16:00
SuperCon2025 本選2日目
今日は、Supreconputing Contest 2025 本選2日目です。
チームtomatoは実装方針が決まり、課題プログラムの並列処理の実装を進めています。ただ、まだGPUの処理にエラーがあるようで実行できるところまでには至っていません。一方チームtreasureはやや遅れ気味で並列処理の実装には届いていません。本日中にCPUで実行できるプログラムを完成させることを目標コーディングしています。並列処理の実装は明日になりそうです。
| チーム tomato の様子 | ||
| チーム treasure の様子 | ||
TSUBAME4.0が使えるのは残り1日半、並列処理はスーパーコンピュータの性能を引き出す決め手となるので、最後まで粘り強く頑張ってくれることを期待しましょう。