chokudaiのブログ

chokudai(高橋直大)のブログです

電王戦について思う事

やねうら王の件で色々ありましたが、まぁ、あんまり悪い人はいないんじゃないかなーと思ってる。
やねうら王の立場としては、バグありよりはなしのを出した方が、興行的にも良い部分多いでしょうし、ああいう提案をするのは解る。
ドワンゴさんも、ああいうややこしい事態になった時に、ああいうネタに持って行く、というのはドワンゴさんらしい選択肢だなぁ、と思うし、失敗した時の撤回の速さは評価したい。

揉めちゃったこと自体は正直残念だけど、コンピュータ将棋、コンピュータによるゲームAIに注目が集まること自体は、凄く良いことだと思う。どっちが勝つにせよ、面白い将棋が見れると良いな。

結果を出し続けることの大切さ

タイトルはちょっとかっこいい感じのオーラ出てますが、すっごいかっこ悪いことを書きます。

今、自分が紹介されたらどうなるか

「今回のゲストは高橋直大さんです! 高橋さんは、Imagine Cup 2008 アルゴリズム部門で3位を獲得され、TopCoder Open 2010でも2位を獲得された、日本トップクラスの競技プログラマーです! 現在は、AtCoder株式会社の代表取締役として、コンテストの運営側に回り、後進の指導に力を入れています。」

自分の言いたいこと

2010年までしか結果出してなくて今は運営に専念してるっぽい紹介されちゃうけど、現役選手だよ!?普通に出場しまくってるよ!?

要するに何が言いたいか

良い結果を出した後に、その後同等の成果が出ないと、いくら活動を続けていても、「昔の人」扱いされちゃいます。きちんと結果を出しましょう。

いや、でもね? 去年だって、ICPFC2013で優勝したり、TopCoder Open 2013で世界5位取ったり、ちゃんとある程度の成果は出してるんだよ? ね?だめ? もっと結果出さないとだめ?

「実践・最強最速のアルゴリズム勉強会」開催します!

実践・最強最速のアルゴリズム勉強会

AtCoderを利用した、実践アルゴリズム講座を開催します!

概要とかは上に書いてありますが、無料講座で、3/9(日)から5週連続で開催します!

教育関係のをやりたくて会社を立ち上げたのもあるので、こうして勉強会を開けるのは凄い嬉しいです!

どんなことをやるの?

アルゴリズムの勉強、というのは、理論を学んでも、実践までするのはなかなか難しいし、実際コードにする機会というのは、なかなか少ないんじゃないかな、と思います。

例えば、「クイックソート」とか「マージソート」とか、「バブルソート」とか、名前は知っていても、仕組みは知らない人が多いと思うし、知っていても実装したことがある人は少ないんじゃないかなー?と思ってます。

とまぁ、アルゴリズムって、「自分で実装が出来る」か、「中身はよく知らなくても、ツールとして利用できる」のどっちかの状態にならないと、仕方ないと思うわけですね。

そこで、今回注目するのは、「自分で実装が出来る」のところ。汎用性が高く、ある程度自分で実装するべき、探索や動的計画法をベースとして、「どう探索するか」「探索過程をどうイメージするか」「どう計算を工夫するか」に焦点を当てて、勉強会を進めていこうと思っています。

どう進めるの?

進め方は、以下の3つの繰り返しとなります。

  • 講義 これから練習するアルゴリズムの説明をします。
  • 実践 具体的な問題を見た上で、どう実装するかをソースを見せて説明します。
  • 演習 別の問題で、実際に自分で組んでみましょう!

講義、実践は自分が前で説明を行い、演習中は、手を動かす形になります。会場中を回りながら困っている人のヘルプに入るつもりですが、解らないことがあったら、手をあげて質問をしてもらえると楽で嬉しいです。

どんな人に来てほしいか

スケジュールが、こんな感じです。

  • 03/09(日)第 1 回 シミュレーションと全探索
  • 03/16(日)第 2 回 いろいろな全探索
  • 03/23(日)第 3 回 動的計画法とメモ化再帰
  • 03/30(日)第 4 回 動的計画法と計算量を減らす工夫
  • 04/06(日)第 5 回 難問に挑戦!

1日目は、競技プログラミングってどんなものかな?というのを触れながら、まず形式に慣れてもらう形になります。ここは、競技プログラミング経験のある人が来ても、ちょっと退屈になっちゃうかもしれません。

2日目は、深さ優先探索幅優先探索といった、全探索の手法の話をしていきます。競技プログラミング慣れしていない人は、ここから参加するとちょうど良いと思います。

3日目は、全探索が間に合わなくなった場合に、動的計画法・メモ化再帰で、計算量を減らす工夫について説明します。ここからは、愚直な実装では正解コードが書けなくなるので、難しくなってくるかもしれません。

4日目は、さらに難しくなった動的計画法の話と、その他のアルゴリズムの説明をします。今回はグラフを省こうと思っていて、探索のイメージから習得しやすい、二分探索や、尺取法、半分全列挙なんかをテーマに、計算量を減らす面白さを体感してもらえると良いな、と思っています。まだここもちょっと未定です。

5日目は、どれだけ難しくするかはまだ決めてません。4日目までの状況を見ながら、問題を選択するつもりでいます。これは演習が殆どになると思うので、少し経路が変わる毛色が変わるかもしれません。

はてなスターで誤字指摘するなら普通に教えてよ!!w

 

ここまで見て、好きな日に参加してもらうのが、一番良いと思います。とりあえず全部登録して、大変そうだったら途中でリタイア、でもいいと思います。(まずかったらワークスさんごめんなさい><)

ぜひお気軽に参加してもらえると嬉しいです!

最後に

競技プログラミングは、本当に面白いと思っていますし、普通のアルゴリズム教育とは、また違った視点でアルゴリズムが学べると思っています。少しでも興味がある方は、ぜひ遊びに来てくれると嬉しいです!